Loading necessary packages:

library(Seurat)
Registered S3 method overwritten by 'data.table':
  method           from
  print.data.table     
Registered S3 method overwritten by 'htmlwidgets':
  method           from         
  print.htmlwidget tools:rstudio

Seurat v4 will be going to CRAN in the near future;
 for more details, please visit https://satijalab.org/seurat/v4_changes
library(cowplot)
library(ggplot2)
library(ggsci)
library(dplyr)

Attaching package: ‘dplyr’

The following objects are masked from ‘package:stats’:

    filter, lag

The following objects are masked from ‘package:base’:

    intersect, setdiff, setequal, union
library(psych)

Attaching package: ‘psych’

The following objects are masked from ‘package:ggplot2’:

    %+%, alpha
library(pheatmap)
library(harmony)
Loading required package: Rcpp
#library(clusterProfiler)
library(org.Hs.eg.db)
Loading required package: AnnotationDbi
Loading required package: stats4
Loading required package: BiocGenerics
Loading required package: parallel

Attaching package: ‘BiocGenerics’

The following objects are masked from ‘package:parallel’:

    clusterApply, clusterApplyLB, clusterCall, clusterEvalQ, clusterExport,
    clusterMap, parApply, parCapply, parLapply, parLapplyLB, parRapply,
    parSapply, parSapplyLB

The following objects are masked from ‘package:dplyr’:

    combine, intersect, setdiff, union

The following objects are masked from ‘package:stats’:

    IQR, mad, sd, var, xtabs

The following objects are masked from ‘package:base’:

    anyDuplicated, append, as.data.frame, basename, cbind, colnames, dirname,
    do.call, duplicated, eval, evalq, Filter, Find, get, grep, grepl, intersect,
    is.unsorted, lapply, Map, mapply, match, mget, order, paste, pmax, pmax.int,
    pmin, pmin.int, Position, rank, rbind, Reduce, rownames, sapply, setdiff,
    sort, table, tapply, union, unique, unsplit, which, which.max, which.min

Loading required package: Biobase
Welcome to Bioconductor

    Vignettes contain introductory material; view with 'browseVignettes()'. To
    cite Bioconductor, see 'citation("Biobase")', and for packages
    'citation("pkgname")'.

Loading required package: IRanges
Loading required package: S4Vectors

Attaching package: ‘S4Vectors’

The following objects are masked from ‘package:dplyr’:

    first, rename

The following object is masked from ‘package:base’:

    expand.grid


Attaching package: ‘IRanges’

The following object is masked from ‘package:psych’:

    reflect

The following objects are masked from ‘package:dplyr’:

    collapse, desc, slice


Attaching package: ‘AnnotationDbi’

The following object is masked from ‘package:dplyr’:

    select
library(DOSE)

DOSE v3.12.0  For help: https://guangchuangyu.github.io/software/DOSE

If you use DOSE in published research, please cite:
Guangchuang Yu, Li-Gen Wang, Guang-Rong Yan, Qing-Yu He. DOSE: an R/Bioconductor package for Disease Ontology Semantic and Enrichment analysis. Bioinformatics 2015, 31(4):608-609
library(GOSemSim)
GOSemSim v2.12.1  For help: https://guangchuangyu.github.io/GOSemSim

If you use GOSemSim in published research, please cite:
Guangchuang Yu, Fei Li, Yide Qin, Xiaochen Bo, Yibo Wu, Shengqi Wang. GOSemSim: an R package for measuring semantic similarity among GO terms and gene products Bioinformatics 2010, 26(7):976-978

Attaching package: ‘GOSemSim’

The following objects are masked from ‘package:DOSE’:

    clusterSim, geneSim, mclusterSim
library(enrichplot)
Registered S3 method overwritten by 'enrichplot':
  method               from
  fortify.enrichResult DOSE

Load the BRI-318, BRI-319, BRI-320, BRI-321, B0085, H0321, H1009, H1118 single-cell data.

BRI318.data <- Read10X(data.dir = "./BRI318")
BRI319.data <- Read10X(data.dir = "./BRI319")
BRI320.data <- Read10X(data.dir = "./BRI320")
BRI321.data <- Read10X(data.dir = "./BRI321")
B0085.data <- Read10X(data.dir = "./B0085")
H0321.data <- Read10X(data.dir = "./H0321")
H1009.data <- Read10X(data.dir = "./H1009")
H1118.data <- Read10X(data.dir = "./H1118")

Filtering all single cell data to have same set of genes.

genes1<-rownames(BRI318.data)
genes2<-rownames(B0085.data)
genes_common<-intersect(genes1,genes2)
BRI318.data<-BRI318.data[rownames(BRI318.data)%in%genes_common,]
BRI319.data<-BRI319.data[rownames(BRI319.data)%in%genes_common,]
BRI320.data<-BRI320.data[rownames(BRI320.data)%in%genes_common,]
BRI321.data<-BRI321.data[rownames(BRI321.data)%in%genes_common,]
B0085.data<-B0085.data[rownames(B0085.data)%in%genes_common,]
H0321.data<-H0321.data[rownames(H0321.data)%in%genes_common,]
H1009.data<-H1009.data[rownames(H1009.data)%in%genes_common,]
H1118.data<-H1118.data[rownames(H1118.data)%in%genes_common,]

Lets see what is the gene expression data dimension is :

dim(BRI318.data)
[1] 33694  5369
dim(BRI319.data)
[1] 33694  1265
dim(BRI320.data)
[1] 33694   922
dim(BRI321.data)
[1] 33694  1925
dim(B0085.data)
[1] 33694  2213
dim(H0321.data)
[1] 33694  1539
dim(H1009.data)
[1] 33694  2089
dim(H1118.data)
[1] 33694  4605

Initialize the Seurat object with the raw (non-normalized data) Rows are Genes and columns are samples.

AllMB <- CreateSeuratObject(counts = cbind(BRI318.data,
                                           BRI319.data,
                                           BRI320.data,
                                           BRI321.data,
                                           B0085.data,
                                           H0321.data,
                                           H1009.data,
                                           H1118.data),
                            project = "Midbrain",
                            min.cells = 3)
Non-unique cell names (colnames) present in the input matrix, making uniqueFeature names cannot have underscores ('_'), replacing with dashes ('-')

Let’s now annotate columns (cells) with meta data :

  1. sample ID
AllMB@meta.data$sample_ID <- c(rep("BRI318", ncol(BRI318.data)),
                               rep("BRI319", ncol(BRI319.data)),
                               rep("BRI320", ncol(BRI320.data)),
                               rep("BRI321", ncol(BRI321.data)),
                               rep("B0085", ncol(B0085.data)),
                               rep("H0321", ncol(H0321.data)),
                               rep("H1009", ncol(H1009.data)),
                               rep("H1118", ncol(H1118.data))
)
  1. case : Healthy Control (HC) or Parkinson Disease (PD)
AllMB@meta.data$case <- c(rep("PD", ncol(BRI318.data)),
                          rep("HC", ncol(BRI319.data)),
                          rep("PD", ncol(BRI320.data)),
                          rep("HC", ncol(BRI321.data)),
                          rep("PD", ncol(B0085.data)),
                          rep("HC", ncol(H0321.data)),
                          rep("HC", ncol(H1009.data)),
                          rep("PD", ncol(H1118.data))
)
  1. Expermient (in this case experiment and sample_ID are identical.)
AllMB@meta.data$experiment <- c(rep("BRI318", ncol(BRI318.data)),
                                rep("BRI319", ncol(BRI319.data)),
                                rep("BRI320", ncol(BRI320.data)),
                                rep("BRI321", ncol(BRI321.data)),
                                rep("B0085", ncol(B0085.data)),
                                rep("H0321", ncol(H0321.data)),
                                rep("H1009", ncol(H1009.data)),
                                rep("H1118", ncol(H1118.data))
)
  1. One VS all annorations : BRI318 vs rest
AllMB@meta.data$BRI318_vs_rest <- c(rep("BRI318", ncol(BRI318.data)),
                                    rep("rest", ncol(BRI319.data)),
                                    rep("rest", ncol(BRI320.data)),
                                    rep("rest", ncol(BRI321.data)),
                                    rep("rest", ncol(B0085.data)),
                                    rep("rest", ncol(H0321.data)),
                                    rep("rest", ncol(H1009.data)),
                                    rep("rest", ncol(H1118.data)))

BRI319 vs rest

AllMB@meta.data$BRI319_vs_rest <- c(rep("rest", ncol(BRI318.data)),
                                    rep("BRI319", ncol(BRI319.data)),
                                    rep("rest", ncol(BRI320.data)),
                                    rep("rest", ncol(BRI321.data)),
                                    rep("rest", ncol(B0085.data)),
                                    rep("rest", ncol(H0321.data)),
                                    rep("rest", ncol(H1009.data)),
                                    rep("rest", ncol(H1118.data))
)

BRI320 vs rest

AllMB@meta.data$BRI320_vs_rest <- c(rep("rest", ncol(BRI318.data)),
                                    rep("rest", ncol(BRI319.data)),
                                    rep("BRI320", ncol(BRI320.data)),
                                    rep("rest", ncol(BRI321.data)),
                                    rep("rest", ncol(B0085.data)),
                                    rep("rest", ncol(H0321.data)),
                                    rep("rest", ncol(H1009.data)),
                                    rep("rest", ncol(H1118.data))
)

BRI321 vs rest

AllMB@meta.data$BRI321_vs_rest <- c(rep("rest", ncol(BRI318.data)),
                                    rep("rest", ncol(BRI319.data)),
                                    rep("rest", ncol(BRI320.data)),
                                    rep("BRI321", ncol(BRI321.data)),
                                    rep("rest", ncol(B0085.data)),
                                    rep("rest", ncol(H0321.data)),
                                    rep("rest", ncol(H1009.data)),
                                    rep("rest", ncol(H1118.data))
)

B0085 vs rest

AllMB@meta.data$B0085_vs_rest <- c(rep("rest", ncol(BRI318.data)),
                                   rep("rest", ncol(BRI319.data)),
                                   rep("rest", ncol(BRI320.data)),
                                   rep("rest", ncol(BRI321.data)),
                                   rep("B0085", ncol(B0085.data)),
                                   rep("rest", ncol(H0321.data)),
                                   rep("rest", ncol(H1009.data)),
                                   rep("rest", ncol(H1118.data))
)

H0321 vs all

AllMB@meta.data$H0321_vs_rest <- c(rep("rest", ncol(BRI318.data)),
                                   rep("rest", ncol(BRI319.data)),
                                   rep("rest", ncol(BRI320.data)),
                                   rep("rest", ncol(BRI321.data)),
                                   rep("rest", ncol(B0085.data)),
                                   rep("H0321", ncol(H0321.data)),
                                   rep("rest", ncol(H1009.data)),
                                   rep("rest", ncol(H1118.data))
)

H1009 vs all

AllMB@meta.data$H1009_vs_rest <- c(rep("rest", ncol(BRI318.data)),
                                   rep("rest", ncol(BRI319.data)),
                                   rep("rest", ncol(BRI320.data)),
                                   rep("rest", ncol(BRI321.data)),
                                   rep("rest", ncol(B0085.data)),
                                   rep("rest", ncol(H0321.data)),
                                   rep("H1009", ncol(H1009.data)),
                                   rep("rest", ncol(H1118.data))
)

H1118 vs all

AllMB@meta.data$H1118_vs_rest <- c(rep("rest", ncol(BRI318.data)),
                                   rep("rest", ncol(BRI319.data)),
                                   rep("rest", ncol(BRI320.data)),
                                   rep("rest", ncol(BRI321.data)),
                                   rep("rest", ncol(B0085.data)),
                                   rep("rest", ncol(H0321.data)),
                                   rep("rest", ncol(H1009.data)),
                                   rep("H1118", ncol(H1118.data))
)

Now let’s see the cell the counts for each group:

table(AllMB$sample_ID)

 B0085 BRI318 BRI319 BRI320 BRI321  H0321  H1009  H1118 
  2213   5369   1265    922   1925   1539   2089   4605 
table(AllMB$case)

   HC    PD 
 6818 13109 
table(AllMB$experiment)

 B0085 BRI318 BRI319 BRI320 BRI321  H0321  H1009  H1118 
  2213   5369   1265    922   1925   1539   2089   4605 

Quality Checking :

Seurat allows you to easily explore QC metrics and filter cells based on any user-defined criteria. A few QC metrics commonly used by the community include : The number of unique genes detected in each cell. Low-quality cells or empty droplets will often have very few genes Cell doublets or multiplets may exhibit an aberrantly high gene count Similarly, the total number of molecules detected within a cell (correlates strongly with unique genes) The percentage of reads that map to the mitochondrial genome Low-quality / dying cells often exhibit extensive mitochondrial contamination We calculate mitochondrial QC metrics with the PercentageFeatureSet() function, which calculates the percentage of counts originating from a set of features We use the set of all genes starting with MT- as a set of mitochondrial genes

AllMB[["percent.mt"]] <- PercentageFeatureSet(AllMB, pattern = "^MT-")
VlnPlot(AllMB, features = c("nFeature_RNA", "nCount_RNA", "percent.mt"), ncol = 3)

An object of class Seurat 25381 features across 6549 samples within 1 assay Active assay: RNA (25381 features)

Filtering low quality cells:

AllMB <- subset(AllMB, subset = nFeature_RNA > 200 & percent.mt < 5)

Log Normalizing data:

AllMB <- NormalizeData(AllMB, normalization.method = "LogNormalize", scale.factor = 10000)
Performing log-normalization
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
AllMB <- FindVariableFeatures(AllMB, selection.method = "vst", nfeatures = 2000)
Calculating gene variances
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Calculating feature variances of standardized and clipped values
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|

Run the standard workflow for visualization and clustering :

save list of all genes

all.genes <- rownames(AllMB)

center and scale data

AllMB <- ScaleData(AllMB, features = all.genes, verbose = FALSE)

fining the top 30 principal componenets for cells

AllMB <- RunPCA(AllMB, npcs = 30, verbose = FALSE)

see contribution of genes to construct each of these principal components.

VizDimLoadings(AllMB, dims = 1:2, reduction = "pca")

plot cells in the first two principal components colored by case:

DimPlot(object = AllMB, reduction = "pca", pt.size = .1, group.by = "case")

Coordinate of cells in PC 1 characterized by case:

VlnPlot(object = AllMB, features = "PC_1", group.by = "case",  pt.size = .1)

Feature Scatter

plot1 <- FeatureScatter(AllMB, feature1 = "nCount_RNA", feature2 = "percent.mt")
plot2 <- FeatureScatter(AllMB, feature1 = "nCount_RNA", feature2 = "nFeature_RNA")
CombinePlots(plots = list(plot1, plot2))
CombinePlots is being deprecated. Plots should now be combined using the patchwork system.

Run Harmony

AllMB <- RunHarmony(AllMB, group.by.vars = "case", plot_convergence = TRUE)
Harmony 1/10
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Harmony 2/10
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Harmony 3/10
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Harmony converged after 3 iterations

cells in harmony axis

harmony_embeddings <- Embeddings(AllMB, 'harmony')
harmony_embeddings[1:5, 1:5]
                    harmony_1   harmony_2  harmony_3   harmony_4
AAACCCAAGAAACTCA-1 -11.020318   0.7066062  8.4489375 -17.7758164
AAACCCAAGAATAACC-1 -13.700371  -1.4192762  8.0989860 -22.3989394
AAACCCAAGATCCCAT-1   8.964616   3.5794657 -0.6828528   1.2625794
AAACCCAGTGTGCCTG-1  -3.704877 -11.3981719 21.0170770   7.2064563
AAACCCATCACCTTAT-1   8.274074   5.1354271 -1.4402690   0.4471147
                    harmony_5
AAACCCAAGAAACTCA-1 -2.2322011
AAACCCAAGAATAACC-1 -3.6411831
AAACCCAAGATCCCAT-1  0.9370106
AAACCCAGTGTGCCTG-1  0.2484639
AAACCCATCACCTTAT-1  1.5823895

cells in harmony axis

DimPlot(object = AllMB, reduction = "harmony", pt.size = .1, group.by = "case")

cells in harmony 1 axis

VlnPlot(object = AllMB, features = "harmony_1", group.by = "case",  pt.size = .1)

An object of class Seurat 25381 features across 6549 samples within 1 assay Active assay: RNA (25381 features) 2 dimensional reductions calculated: pca, harmony

Finding Clusters of cells:

AllMB <- FindNeighbors(AllMB, reduction = "harmony", dims = 1:20)
Computing nearest neighbor graph
Computing SNN
AllMB <- FindClusters(AllMB, resolution = 0.5)
Modularity Optimizer version 1.3.0 by Ludo Waltman and Nees Jan van Eck

Number of nodes: 15038
Number of edges: 584525

Running Louvain algorithm...
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Maximum modularity in 10 random starts: 0.9185
Number of communities: 17
Elapsed time: 1 seconds

run Umap based on top 20 harmony axis:

AllMB <- RunUMAP(AllMB, reduction = "harmony", dims = 1:20)
The default method for RunUMAP has changed from calling Python UMAP via reticulate to the R-native UWOT using the cosine metric
To use Python UMAP via reticulate, set umap.method to 'umap-learn' and metric to 'correlation'
This message will be shown once per session20:33:38 UMAP embedding parameters a = 0.9922 b = 1.112
20:33:38 Read 15038 rows and found 20 numeric columns
20:33:38 Using Annoy for neighbor search, n_neighbors = 30
20:33:38 Building Annoy index with metric = cosine, n_trees = 50
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
20:33:40 Writing NN index file to temp file /var/folders/q9/jv6n69f57ns8fdkk8kc27rhm0000gp/T//RtmpCWtKUP/file85292e6be1bc
20:33:40 Searching Annoy index using 1 thread, search_k = 3000
20:33:43 Annoy recall = 100%
20:33:44 Commencing smooth kNN distance calibration using 1 thread
20:33:46 Initializing from normalized Laplacian + noise
20:33:48 Commencing optimization for 200 epochs, with 658112 positive edges
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
20:33:55 Optimization finished

run tsne based on top 20 harmony axis:

AllMB <- RunTSNE(AllMB, reduction = "harmony", dims = 1:20)

plot umap:

DimPlot(AllMB, reduction = "umap", label = TRUE,pt.size = 0.01)

DimPlot(AllMB, reduction = "umap", group.by = "case",pt.size = 0.1)

DimPlot(AllMB, reduction = "umap", group.by = "experiment",pt.size = 0.1)

DimPlot(AllMB, reduction = "tsne", group.by = "BRI318_vs_rest")

DimPlot(AllMB, reduction = "tsne", group.by = "BRI319_vs_rest")

DimPlot(AllMB, reduction = "tsne", group.by = "BRI320_vs_rest")

DimPlot(AllMB, reduction = "tsne", group.by = "BRI321_vs_rest")

DimPlot(AllMB, reduction = "tsne", group.by = "B0085_vs_rest")

DimPlot(AllMB, reduction = "tsne", group.by = "H0321_vs_rest")

DimPlot(AllMB, reduction = "tsne", group.by = "H1009_vs_rest")

DimPlot(AllMB, reduction = "tsne", group.by = "H1118_vs_rest")

TSNE Plot cells colored by clusters and grouped by case.

DimPlot(AllMB, reduction = "tsne", split.by = "case", label = TRUE, ncol = 1)

Find markers for every cluster compared to all remaining cells, report only the positive ones

AllMB.markers <- FindAllMarkers(AllMB, only.pos = TRUE, min.pct = 0.25, logfc.threshold = 0.25)
Calculating cluster 0
For a more efficient implementation of the Wilcoxon Rank Sum Test,
(default method for FindMarkers) please install the limma package
--------------------------------------------
install.packages('BiocManager')
BiocManager::install('limma')
--------------------------------------------
After installation of limma, Seurat will automatically use the more 
efficient implementation (no further action necessary).
This message will be shown once per session

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~01m 38s      
  |++                                                | 2 % ~01m 36s      
  |++                                                | 3 % ~01m 34s      
  |+++                                               | 4 % ~01m 35s      
  |+++                                               | 5 % ~01m 33s      
  |++++                                              | 6 % ~01m 31s      
  |++++                                              | 7 % ~01m 30s      
  |+++++                                             | 8 % ~01m 28s      
  |+++++                                             | 9 % ~01m 28s      
  |++++++                                            | 10% ~01m 27s      
  |++++++                                            | 11% ~01m 26s      
  |+++++++                                           | 12% ~01m 25s      
  |+++++++                                           | 13% ~01m 24s      
  |++++++++                                          | 14% ~01m 24s      
  |++++++++                                          | 15% ~01m 23s      
  |+++++++++                                         | 16% ~01m 22s      
  |+++++++++                                         | 18% ~01m 20s      
  |++++++++++                                        | 19% ~01m 19s      
  |++++++++++                                        | 20% ~01m 18s      
  |+++++++++++                                       | 21% ~01m 17s      
  |+++++++++++                                       | 22% ~01m 16s      
  |++++++++++++                                      | 23% ~01m 15s      
  |++++++++++++                                      | 24% ~01m 14s      
  |+++++++++++++                                     | 25% ~01m 13s      
  |+++++++++++++                                     | 26% ~01m 12s      
  |++++++++++++++                                    | 27% ~01m 10s      
  |++++++++++++++                                    | 28% ~01m 09s      
  |+++++++++++++++                                   | 29% ~01m 08s      
  |+++++++++++++++                                   | 30% ~01m 07s      
  |++++++++++++++++                                  | 31% ~01m 06s      
  |++++++++++++++++                                  | 32% ~01m 05s      
  |+++++++++++++++++                                 | 33% ~01m 04s      
  |++++++++++++++++++                                | 34% ~01m 03s      
  |++++++++++++++++++                                | 35% ~01m 02s      
  |+++++++++++++++++++                               | 36% ~01m 01s      
  |+++++++++++++++++++                               | 37% ~01m 00s      
  |++++++++++++++++++++                              | 38% ~01m 00s      
  |++++++++++++++++++++                              | 39% ~59s          
  |+++++++++++++++++++++                             | 40% ~58s          
  |+++++++++++++++++++++                             | 41% ~57s          
  |++++++++++++++++++++++                            | 42% ~56s          
  |++++++++++++++++++++++                            | 43% ~55s          
  |+++++++++++++++++++++++                           | 44% ~54s          
  |+++++++++++++++++++++++                           | 45% ~53s          
  |++++++++++++++++++++++++                          | 46% ~52s          
  |++++++++++++++++++++++++                          | 47% ~51s          
  |+++++++++++++++++++++++++                         | 48% ~50s          
  |+++++++++++++++++++++++++                         | 49% ~49s          
  |++++++++++++++++++++++++++                        | 51% ~49s          
  |++++++++++++++++++++++++++                        | 52% ~48s          
  |+++++++++++++++++++++++++++                       | 53% ~47s          
  |+++++++++++++++++++++++++++                       | 54% ~46s          
  |++++++++++++++++++++++++++++                      | 55% ~45s          
  |++++++++++++++++++++++++++++                      | 56% ~44s          
  |+++++++++++++++++++++++++++++                     | 57% ~43s          
  |+++++++++++++++++++++++++++++                     | 58% ~42s          
  |++++++++++++++++++++++++++++++                    | 59% ~41s          
  |++++++++++++++++++++++++++++++                    | 60% ~40s          
  |+++++++++++++++++++++++++++++++                   | 61% ~39s          
  |+++++++++++++++++++++++++++++++                   | 62% ~38s          
  |++++++++++++++++++++++++++++++++                  | 63% ~37s          
  |++++++++++++++++++++++++++++++++                  | 64% ~35s          
  |+++++++++++++++++++++++++++++++++                 | 65% ~34s          
  |+++++++++++++++++++++++++++++++++                 | 66% ~33s          
  |++++++++++++++++++++++++++++++++++                | 67% ~32s          
  |+++++++++++++++++++++++++++++++++++               | 68% ~31s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~30s          
  |++++++++++++++++++++++++++++++++++++              | 70% ~29s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~28s          
  |+++++++++++++++++++++++++++++++++++++             | 72% ~27s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~26s          
  |++++++++++++++++++++++++++++++++++++++            | 74% ~25s          
  |++++++++++++++++++++++++++++++++++++++            | 75% ~24s          
  |+++++++++++++++++++++++++++++++++++++++           | 76% ~23s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~22s          
  |++++++++++++++++++++++++++++++++++++++++          | 78% ~21s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~20s          
  |+++++++++++++++++++++++++++++++++++++++++         | 80% ~19s          
  |+++++++++++++++++++++++++++++++++++++++++         | 81% ~18s          
  |++++++++++++++++++++++++++++++++++++++++++        | 82% ~17s          
  |++++++++++++++++++++++++++++++++++++++++++        | 84% ~16s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~15s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~14s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~13s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 88% ~12s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~11s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 90% ~10s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~09s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~08s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~07s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~06s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~05s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~04s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~03s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~02s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=01m 38s
Calculating cluster 1

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~01m 40s      
  |++                                                | 2 % ~01m 44s      
  |++                                                | 3 % ~01m 42s      
  |+++                                               | 4 % ~01m 39s      
  |+++                                               | 5 % ~02m 04s      
  |++++                                              | 6 % ~01m 58s      
  |++++                                              | 7 % ~01m 52s      
  |+++++                                             | 8 % ~01m 47s      
  |+++++                                             | 9 % ~01m 44s      
  |++++++                                            | 10% ~01m 40s      
  |++++++                                            | 11% ~01m 38s      
  |+++++++                                           | 12% ~01m 35s      
  |+++++++                                           | 13% ~01m 33s      
  |++++++++                                          | 14% ~01m 31s      
  |++++++++                                          | 15% ~01m 30s      
  |+++++++++                                         | 16% ~01m 28s      
  |+++++++++                                         | 17% ~01m 26s      
  |++++++++++                                        | 18% ~01m 24s      
  |++++++++++                                        | 19% ~01m 23s      
  |+++++++++++                                       | 20% ~01m 22s      
  |+++++++++++                                       | 21% ~01m 21s      
  |++++++++++++                                      | 22% ~01m 19s      
  |++++++++++++                                      | 23% ~01m 18s      
  |+++++++++++++                                     | 24% ~01m 16s      
  |+++++++++++++                                     | 26% ~01m 15s      
  |++++++++++++++                                    | 27% ~01m 14s      
  |++++++++++++++                                    | 28% ~01m 13s      
  |+++++++++++++++                                   | 29% ~01m 12s      
  |+++++++++++++++                                   | 30% ~01m 11s      
  |++++++++++++++++                                  | 31% ~01m 09s      
  |++++++++++++++++                                  | 32% ~01m 08s      
  |+++++++++++++++++                                 | 33% ~01m 07s      
  |+++++++++++++++++                                 | 34% ~01m 06s      
  |++++++++++++++++++                                | 35% ~01m 05s      
  |++++++++++++++++++                                | 36% ~01m 04s      
  |+++++++++++++++++++                               | 37% ~01m 03s      
  |+++++++++++++++++++                               | 38% ~01m 02s      
  |++++++++++++++++++++                              | 39% ~01m 01s      
  |++++++++++++++++++++                              | 40% ~01m 00s      
  |+++++++++++++++++++++                             | 41% ~59s          
  |+++++++++++++++++++++                             | 42% ~58s          
  |++++++++++++++++++++++                            | 43% ~57s          
  |++++++++++++++++++++++                            | 44% ~56s          
  |+++++++++++++++++++++++                           | 45% ~55s          
  |+++++++++++++++++++++++                           | 46% ~54s          
  |++++++++++++++++++++++++                          | 47% ~53s          
  |++++++++++++++++++++++++                          | 48% ~53s          
  |+++++++++++++++++++++++++                         | 49% ~52s          
  |+++++++++++++++++++++++++                         | 50% ~51s          
  |++++++++++++++++++++++++++                        | 51% ~49s          
  |+++++++++++++++++++++++++++                       | 52% ~48s          
  |+++++++++++++++++++++++++++                       | 53% ~47s          
  |++++++++++++++++++++++++++++                      | 54% ~46s          
  |++++++++++++++++++++++++++++                      | 55% ~45s          
  |+++++++++++++++++++++++++++++                     | 56% ~44s          
  |+++++++++++++++++++++++++++++                     | 57% ~43s          
  |++++++++++++++++++++++++++++++                    | 58% ~42s          
  |++++++++++++++++++++++++++++++                    | 59% ~41s          
  |+++++++++++++++++++++++++++++++                   | 60% ~40s          
  |+++++++++++++++++++++++++++++++                   | 61% ~39s          
  |++++++++++++++++++++++++++++++++                  | 62% ~38s          
  |++++++++++++++++++++++++++++++++                  | 63% ~37s          
  |+++++++++++++++++++++++++++++++++                 | 64% ~36s          
  |+++++++++++++++++++++++++++++++++                 | 65% ~35s          
  |++++++++++++++++++++++++++++++++++                | 66% ~34s          
  |++++++++++++++++++++++++++++++++++                | 67% ~32s          
  |+++++++++++++++++++++++++++++++++++               | 68% ~31s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~30s          
  |++++++++++++++++++++++++++++++++++++              | 70% ~30s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~29s          
  |+++++++++++++++++++++++++++++++++++++             | 72% ~27s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~26s          
  |++++++++++++++++++++++++++++++++++++++            | 74% ~25s          
  |++++++++++++++++++++++++++++++++++++++            | 76% ~24s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~24s          
  |+++++++++++++++++++++++++++++++++++++++           | 78% ~23s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~22s          
  |++++++++++++++++++++++++++++++++++++++++          | 80% ~21s          
  |+++++++++++++++++++++++++++++++++++++++++         | 81% ~19s          
  |+++++++++++++++++++++++++++++++++++++++++         | 82% ~18s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~17s          
  |++++++++++++++++++++++++++++++++++++++++++        | 84% ~16s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~15s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~14s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~13s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 88% ~12s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~11s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 90% ~10s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~09s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~08s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~07s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~06s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~05s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~04s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~03s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~02s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=01m 44s
Calculating cluster 2

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~01m 44s      
  |++                                                | 2 % ~01m 44s      
  |++                                                | 3 % ~01m 42s      
  |+++                                               | 4 % ~01m 40s      
  |+++                                               | 5 % ~01m 39s      
  |++++                                              | 7 % ~01m 38s      
  |++++                                              | 8 % ~01m 37s      
  |+++++                                             | 9 % ~01m 36s      
  |+++++                                             | 10% ~01m 35s      
  |++++++                                            | 11% ~01m 34s      
  |++++++                                            | 12% ~01m 33s      
  |+++++++                                           | 13% ~01m 32s      
  |++++++++                                          | 14% ~01m 31s      
  |++++++++                                          | 15% ~01m 30s      
  |+++++++++                                         | 16% ~01m 29s      
  |+++++++++                                         | 17% ~01m 28s      
  |++++++++++                                        | 18% ~01m 27s      
  |++++++++++                                        | 20% ~01m 29s      
  |+++++++++++                                       | 21% ~01m 28s      
  |+++++++++++                                       | 22% ~01m 27s      
  |++++++++++++                                      | 23% ~01m 26s      
  |++++++++++++                                      | 24% ~01m 24s      
  |+++++++++++++                                     | 25% ~01m 24s      
  |++++++++++++++                                    | 26% ~01m 22s      
  |++++++++++++++                                    | 27% ~01m 21s      
  |+++++++++++++++                                   | 28% ~01m 20s      
  |+++++++++++++++                                   | 29% ~01m 19s      
  |++++++++++++++++                                  | 30% ~01m 18s      
  |++++++++++++++++                                  | 32% ~01m 16s      
  |+++++++++++++++++                                 | 33% ~01m 15s      
  |+++++++++++++++++                                 | 34% ~01m 14s      
  |++++++++++++++++++                                | 35% ~01m 13s      
  |++++++++++++++++++                                | 36% ~01m 11s      
  |+++++++++++++++++++                               | 37% ~01m 10s      
  |++++++++++++++++++++                              | 38% ~01m 09s      
  |++++++++++++++++++++                              | 39% ~01m 08s      
  |+++++++++++++++++++++                             | 40% ~01m 07s      
  |+++++++++++++++++++++                             | 41% ~01m 06s      
  |++++++++++++++++++++++                            | 42% ~01m 05s      
  |++++++++++++++++++++++                            | 43% ~01m 04s      
  |+++++++++++++++++++++++                           | 45% ~01m 04s      
  |+++++++++++++++++++++++                           | 46% ~01m 03s      
  |++++++++++++++++++++++++                          | 47% ~01m 02s      
  |++++++++++++++++++++++++                          | 48% ~01m 01s      
  |+++++++++++++++++++++++++                         | 49% ~60s          
  |+++++++++++++++++++++++++                         | 50% ~59s          
  |++++++++++++++++++++++++++                        | 51% ~58s          
  |+++++++++++++++++++++++++++                       | 52% ~56s          
  |+++++++++++++++++++++++++++                       | 53% ~55s          
  |++++++++++++++++++++++++++++                      | 54% ~53s          
  |++++++++++++++++++++++++++++                      | 55% ~52s          
  |+++++++++++++++++++++++++++++                     | 57% ~51s          
  |+++++++++++++++++++++++++++++                     | 58% ~49s          
  |++++++++++++++++++++++++++++++                    | 59% ~48s          
  |++++++++++++++++++++++++++++++                    | 60% ~47s          
  |+++++++++++++++++++++++++++++++                   | 61% ~45s          
  |+++++++++++++++++++++++++++++++                   | 62% ~44s          
  |++++++++++++++++++++++++++++++++                  | 63% ~43s          
  |+++++++++++++++++++++++++++++++++                 | 64% ~41s          
  |+++++++++++++++++++++++++++++++++                 | 65% ~40s          
  |++++++++++++++++++++++++++++++++++                | 66% ~39s          
  |++++++++++++++++++++++++++++++++++                | 67% ~39s          
  |+++++++++++++++++++++++++++++++++++               | 68% ~37s          
  |+++++++++++++++++++++++++++++++++++               | 70% ~36s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~35s          
  |++++++++++++++++++++++++++++++++++++              | 72% ~33s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~32s          
  |+++++++++++++++++++++++++++++++++++++             | 74% ~31s          
  |++++++++++++++++++++++++++++++++++++++            | 75% ~29s          
  |+++++++++++++++++++++++++++++++++++++++           | 76% ~28s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~27s          
  |++++++++++++++++++++++++++++++++++++++++          | 78% ~25s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~24s          
  |+++++++++++++++++++++++++++++++++++++++++         | 80% ~23s          
  |+++++++++++++++++++++++++++++++++++++++++         | 82% ~21s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~20s          
  |++++++++++++++++++++++++++++++++++++++++++        | 84% ~19s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~18s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~16s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~15s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 88% ~14s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~13s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 90% ~11s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~10s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 92% ~09s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~08s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~06s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~05s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~04s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~03s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=01m 57s
Calculating cluster 3

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~02m 23s      
  |++                                                | 2 % ~02m 20s      
  |++                                                | 3 % ~02m 19s      
  |+++                                               | 4 % ~02m 19s      
  |+++                                               | 5 % ~02m 17s      
  |++++                                              | 6 % ~02m 16s      
  |++++                                              | 7 % ~02m 14s      
  |+++++                                             | 8 % ~02m 12s      
  |+++++                                             | 9 % ~02m 11s      
  |++++++                                            | 11% ~02m 10s      
  |++++++                                            | 12% ~02m 09s      
  |+++++++                                           | 13% ~02m 10s      
  |+++++++                                           | 14% ~02m 10s      
  |++++++++                                          | 15% ~02m 10s      
  |++++++++                                          | 16% ~02m 09s      
  |+++++++++                                         | 17% ~02m 11s      
  |+++++++++                                         | 18% ~02m 09s      
  |++++++++++                                        | 19% ~02m 06s      
  |++++++++++                                        | 20% ~02m 04s      
  |+++++++++++                                       | 21% ~02m 02s      
  |++++++++++++                                      | 22% ~01m 60s      
  |++++++++++++                                      | 23% ~01m 58s      
  |+++++++++++++                                     | 24% ~01m 56s      
  |+++++++++++++                                     | 25% ~01m 54s      
  |++++++++++++++                                    | 26% ~01m 52s      
  |++++++++++++++                                    | 27% ~01m 50s      
  |+++++++++++++++                                   | 28% ~01m 49s      
  |+++++++++++++++                                   | 29% ~01m 47s      
  |++++++++++++++++                                  | 31% ~01m 48s      
  |++++++++++++++++                                  | 32% ~01m 46s      
  |+++++++++++++++++                                 | 33% ~01m 44s      
  |+++++++++++++++++                                 | 34% ~01m 42s      
  |++++++++++++++++++                                | 35% ~01m 40s      
  |++++++++++++++++++                                | 36% ~01m 39s      
  |+++++++++++++++++++                               | 37% ~01m 37s      
  |+++++++++++++++++++                               | 38% ~01m 35s      
  |++++++++++++++++++++                              | 39% ~01m 33s      
  |++++++++++++++++++++                              | 40% ~01m 32s      
  |+++++++++++++++++++++                             | 41% ~01m 30s      
  |++++++++++++++++++++++                            | 42% ~01m 28s      
  |++++++++++++++++++++++                            | 43% ~01m 27s      
  |+++++++++++++++++++++++                           | 44% ~01m 29s      
  |+++++++++++++++++++++++                           | 45% ~01m 27s      
  |++++++++++++++++++++++++                          | 46% ~01m 25s      
  |++++++++++++++++++++++++                          | 47% ~01m 24s      
  |+++++++++++++++++++++++++                         | 48% ~01m 22s      
  |+++++++++++++++++++++++++                         | 49% ~01m 20s      
  |++++++++++++++++++++++++++                        | 51% ~01m 18s      
  |++++++++++++++++++++++++++                        | 52% ~01m 16s      
  |+++++++++++++++++++++++++++                       | 53% ~01m 14s      
  |+++++++++++++++++++++++++++                       | 54% ~01m 12s      
  |++++++++++++++++++++++++++++                      | 55% ~01m 11s      
  |++++++++++++++++++++++++++++                      | 56% ~01m 09s      
  |+++++++++++++++++++++++++++++                     | 57% ~01m 07s      
  |+++++++++++++++++++++++++++++                     | 58% ~01m 06s      
  |++++++++++++++++++++++++++++++                    | 59% ~01m 04s      
  |++++++++++++++++++++++++++++++                    | 60% ~01m 02s      
  |+++++++++++++++++++++++++++++++                   | 61% ~01m 01s      
  |++++++++++++++++++++++++++++++++                  | 62% ~59s          
  |++++++++++++++++++++++++++++++++                  | 63% ~57s          
  |+++++++++++++++++++++++++++++++++                 | 64% ~56s          
  |+++++++++++++++++++++++++++++++++                 | 65% ~54s          
  |++++++++++++++++++++++++++++++++++                | 66% ~52s          
  |++++++++++++++++++++++++++++++++++                | 67% ~51s          
  |+++++++++++++++++++++++++++++++++++               | 68% ~49s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~47s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~46s          
  |++++++++++++++++++++++++++++++++++++              | 72% ~44s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~42s          
  |+++++++++++++++++++++++++++++++++++++             | 74% ~41s          
  |++++++++++++++++++++++++++++++++++++++            | 75% ~39s          
  |++++++++++++++++++++++++++++++++++++++            | 76% ~38s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~36s          
  |+++++++++++++++++++++++++++++++++++++++           | 78% ~34s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~33s          
  |++++++++++++++++++++++++++++++++++++++++          | 80% ~31s          
  |+++++++++++++++++++++++++++++++++++++++++         | 81% ~29s          
  |++++++++++++++++++++++++++++++++++++++++++        | 82% ~28s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~26s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 84% ~24s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~23s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 86% ~21s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~19s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 88% ~18s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~16s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~15s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~13s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~11s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~10s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~08s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~06s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~05s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~03s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~02s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=02m 32s
Calculating cluster 4

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~01m 36s      
  |++                                                | 2 % ~01m 34s      
  |++                                                | 3 % ~01m 32s      
  |+++                                               | 4 % ~01m 30s      
  |+++                                               | 5 % ~01m 30s      
  |++++                                              | 6 % ~01m 29s      
  |++++                                              | 7 % ~01m 28s      
  |+++++                                             | 8 % ~01m 26s      
  |+++++                                             | 9 % ~01m 26s      
  |++++++                                            | 11% ~01m 25s      
  |++++++                                            | 12% ~01m 24s      
  |+++++++                                           | 13% ~01m 41s      
  |+++++++                                           | 14% ~01m 38s      
  |++++++++                                          | 15% ~01m 36s      
  |++++++++                                          | 16% ~01m 34s      
  |+++++++++                                         | 17% ~01m 32s      
  |+++++++++                                         | 18% ~01m 30s      
  |++++++++++                                        | 19% ~01m 28s      
  |++++++++++                                        | 20% ~01m 26s      
  |+++++++++++                                       | 21% ~01m 24s      
  |++++++++++++                                      | 22% ~01m 23s      
  |++++++++++++                                      | 23% ~01m 21s      
  |+++++++++++++                                     | 24% ~01m 20s      
  |+++++++++++++                                     | 25% ~01m 18s      
  |++++++++++++++                                    | 26% ~01m 17s      
  |++++++++++++++                                    | 27% ~01m 16s      
  |+++++++++++++++                                   | 28% ~01m 14s      
  |+++++++++++++++                                   | 29% ~01m 13s      
  |++++++++++++++++                                  | 31% ~01m 12s      
  |++++++++++++++++                                  | 32% ~01m 10s      
  |+++++++++++++++++                                 | 33% ~01m 09s      
  |+++++++++++++++++                                 | 34% ~01m 08s      
  |++++++++++++++++++                                | 35% ~01m 06s      
  |++++++++++++++++++                                | 36% ~01m 05s      
  |+++++++++++++++++++                               | 37% ~01m 04s      
  |+++++++++++++++++++                               | 38% ~01m 03s      
  |++++++++++++++++++++                              | 39% ~01m 02s      
  |++++++++++++++++++++                              | 40% ~01m 01s      
  |+++++++++++++++++++++                             | 41% ~01m 00s      
  |++++++++++++++++++++++                            | 42% ~59s          
  |++++++++++++++++++++++                            | 43% ~58s          
  |+++++++++++++++++++++++                           | 44% ~57s          
  |+++++++++++++++++++++++                           | 45% ~56s          
  |++++++++++++++++++++++++                          | 46% ~55s          
  |++++++++++++++++++++++++                          | 47% ~54s          
  |+++++++++++++++++++++++++                         | 48% ~53s          
  |+++++++++++++++++++++++++                         | 49% ~52s          
  |++++++++++++++++++++++++++                        | 51% ~51s          
  |++++++++++++++++++++++++++                        | 52% ~50s          
  |+++++++++++++++++++++++++++                       | 53% ~48s          
  |+++++++++++++++++++++++++++                       | 54% ~47s          
  |++++++++++++++++++++++++++++                      | 55% ~46s          
  |++++++++++++++++++++++++++++                      | 56% ~45s          
  |+++++++++++++++++++++++++++++                     | 57% ~45s          
  |+++++++++++++++++++++++++++++                     | 58% ~44s          
  |++++++++++++++++++++++++++++++                    | 59% ~42s          
  |++++++++++++++++++++++++++++++                    | 60% ~41s          
  |+++++++++++++++++++++++++++++++                   | 61% ~40s          
  |++++++++++++++++++++++++++++++++                  | 62% ~39s          
  |++++++++++++++++++++++++++++++++                  | 63% ~38s          
  |+++++++++++++++++++++++++++++++++                 | 64% ~37s          
  |+++++++++++++++++++++++++++++++++                 | 65% ~36s          
  |++++++++++++++++++++++++++++++++++                | 66% ~35s          
  |++++++++++++++++++++++++++++++++++                | 67% ~33s          
  |+++++++++++++++++++++++++++++++++++               | 68% ~32s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~31s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~30s          
  |++++++++++++++++++++++++++++++++++++              | 72% ~29s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~28s          
  |+++++++++++++++++++++++++++++++++++++             | 74% ~27s          
  |++++++++++++++++++++++++++++++++++++++            | 75% ~26s          
  |++++++++++++++++++++++++++++++++++++++            | 76% ~25s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~24s          
  |+++++++++++++++++++++++++++++++++++++++           | 78% ~23s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~21s          
  |++++++++++++++++++++++++++++++++++++++++          | 80% ~20s          
  |+++++++++++++++++++++++++++++++++++++++++         | 81% ~19s          
  |++++++++++++++++++++++++++++++++++++++++++        | 82% ~18s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~17s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 84% ~16s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~15s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 86% ~14s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~13s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 88% ~12s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~11s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~10s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~09s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~07s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~06s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~05s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~04s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~03s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~02s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=01m 42s
Calculating cluster 5

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~03m 05s      
  |++                                                | 2 % ~03m 01s      
  |++                                                | 3 % ~02m 58s      
  |+++                                               | 4 % ~02m 54s      
  |+++                                               | 5 % ~02m 52s      
  |++++                                              | 6 % ~02m 50s      
  |++++                                              | 7 % ~02m 48s      
  |+++++                                             | 8 % ~02m 46s      
  |+++++                                             | 9 % ~02m 44s      
  |++++++                                            | 11% ~02m 43s      
  |++++++                                            | 12% ~02m 41s      
  |+++++++                                           | 13% ~02m 39s      
  |+++++++                                           | 14% ~02m 38s      
  |++++++++                                          | 15% ~02m 36s      
  |++++++++                                          | 16% ~02m 34s      
  |+++++++++                                         | 17% ~02m 33s      
  |+++++++++                                         | 18% ~02m 31s      
  |++++++++++                                        | 19% ~02m 29s      
  |++++++++++                                        | 20% ~02m 27s      
  |+++++++++++                                       | 21% ~02m 25s      
  |++++++++++++                                      | 22% ~02m 23s      
  |++++++++++++                                      | 23% ~02m 22s      
  |+++++++++++++                                     | 24% ~02m 22s      
  |+++++++++++++                                     | 25% ~02m 20s      
  |++++++++++++++                                    | 26% ~02m 17s      
  |++++++++++++++                                    | 27% ~02m 15s      
  |+++++++++++++++                                   | 28% ~02m 13s      
  |+++++++++++++++                                   | 29% ~02m 11s      
  |++++++++++++++++                                  | 31% ~02m 09s      
  |++++++++++++++++                                  | 32% ~02m 07s      
  |+++++++++++++++++                                 | 33% ~02m 05s      
  |+++++++++++++++++                                 | 34% ~02m 03s      
  |++++++++++++++++++                                | 35% ~02m 01s      
  |++++++++++++++++++                                | 36% ~01m 59s      
  |+++++++++++++++++++                               | 37% ~01m 57s      
  |+++++++++++++++++++                               | 38% ~01m 55s      
  |++++++++++++++++++++                              | 39% ~01m 53s      
  |++++++++++++++++++++                              | 40% ~01m 52s      
  |+++++++++++++++++++++                             | 41% ~01m 50s      
  |++++++++++++++++++++++                            | 42% ~01m 48s      
  |++++++++++++++++++++++                            | 43% ~01m 46s      
  |+++++++++++++++++++++++                           | 44% ~01m 44s      
  |+++++++++++++++++++++++                           | 45% ~01m 42s      
  |++++++++++++++++++++++++                          | 46% ~01m 39s      
  |++++++++++++++++++++++++                          | 47% ~01m 37s      
  |+++++++++++++++++++++++++                         | 48% ~01m 35s      
  |+++++++++++++++++++++++++                         | 49% ~01m 36s      
  |++++++++++++++++++++++++++                        | 51% ~01m 34s      
  |++++++++++++++++++++++++++                        | 52% ~01m 32s      
  |+++++++++++++++++++++++++++                       | 53% ~01m 30s      
  |+++++++++++++++++++++++++++                       | 54% ~01m 28s      
  |++++++++++++++++++++++++++++                      | 55% ~01m 26s      
  |++++++++++++++++++++++++++++                      | 56% ~01m 24s      
  |+++++++++++++++++++++++++++++                     | 57% ~01m 22s      
  |+++++++++++++++++++++++++++++                     | 58% ~01m 20s      
  |++++++++++++++++++++++++++++++                    | 59% ~01m 18s      
  |++++++++++++++++++++++++++++++                    | 60% ~01m 16s      
  |+++++++++++++++++++++++++++++++                   | 61% ~01m 14s      
  |++++++++++++++++++++++++++++++++                  | 62% ~01m 12s      
  |++++++++++++++++++++++++++++++++                  | 63% ~01m 10s      
  |+++++++++++++++++++++++++++++++++                 | 64% ~01m 08s      
  |+++++++++++++++++++++++++++++++++                 | 65% ~01m 06s      
  |++++++++++++++++++++++++++++++++++                | 66% ~01m 04s      
  |++++++++++++++++++++++++++++++++++                | 67% ~01m 02s      
  |+++++++++++++++++++++++++++++++++++               | 68% ~60s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~58s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~56s          
  |++++++++++++++++++++++++++++++++++++              | 72% ~54s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~52s          
  |+++++++++++++++++++++++++++++++++++++             | 74% ~50s          
  |++++++++++++++++++++++++++++++++++++++            | 75% ~48s          
  |++++++++++++++++++++++++++++++++++++++            | 76% ~46s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~44s          
  |+++++++++++++++++++++++++++++++++++++++           | 78% ~42s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~40s          
  |++++++++++++++++++++++++++++++++++++++++          | 80% ~38s          
  |+++++++++++++++++++++++++++++++++++++++++         | 81% ~36s          
  |++++++++++++++++++++++++++++++++++++++++++        | 82% ~34s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~32s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 84% ~30s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~28s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 86% ~26s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~24s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 88% ~22s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~20s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~18s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~16s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~14s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~12s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~10s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~08s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~06s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~04s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~02s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=03m 10s
Calculating cluster 6

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~02m 26s      
  |+                                                 | 2 % ~02m 24s      
  |++                                                | 3 % ~02m 23s      
  |++                                                | 4 % ~02m 22s      
  |+++                                               | 5 % ~02m 21s      
  |+++                                               | 6 % ~02m 19s      
  |++++                                              | 7 % ~02m 17s      
  |++++                                              | 8 % ~02m 16s      
  |+++++                                             | 9 % ~02m 14s      
  |+++++                                             | 10% ~02m 13s      
  |++++++                                            | 11% ~02m 12s      
  |++++++                                            | 12% ~02m 11s      
  |+++++++                                           | 13% ~02m 10s      
  |+++++++                                           | 14% ~02m 10s      
  |++++++++                                          | 15% ~02m 10s      
  |++++++++                                          | 16% ~02m 10s      
  |+++++++++                                         | 17% ~02m 10s      
  |+++++++++                                         | 18% ~02m 10s      
  |++++++++++                                        | 19% ~02m 09s      
  |++++++++++                                        | 20% ~02m 07s      
  |+++++++++++                                       | 21% ~02m 06s      
  |+++++++++++                                       | 22% ~02m 04s      
  |++++++++++++                                      | 23% ~02m 02s      
  |++++++++++++                                      | 24% ~02m 01s      
  |+++++++++++++                                     | 25% ~01m 59s      
  |+++++++++++++                                     | 26% ~01m 57s      
  |++++++++++++++                                    | 27% ~01m 55s      
  |++++++++++++++                                    | 28% ~01m 53s      
  |+++++++++++++++                                   | 29% ~01m 54s      
  |+++++++++++++++                                   | 30% ~01m 52s      
  |++++++++++++++++                                  | 31% ~01m 50s      
  |++++++++++++++++                                  | 32% ~01m 48s      
  |+++++++++++++++++                                 | 33% ~01m 47s      
  |+++++++++++++++++                                 | 34% ~01m 45s      
  |++++++++++++++++++                                | 35% ~01m 43s      
  |++++++++++++++++++                                | 36% ~01m 42s      
  |+++++++++++++++++++                               | 37% ~01m 41s      
  |+++++++++++++++++++                               | 38% ~01m 39s      
  |++++++++++++++++++++                              | 39% ~01m 38s      
  |++++++++++++++++++++                              | 40% ~01m 37s      
  |+++++++++++++++++++++                             | 41% ~01m 36s      
  |+++++++++++++++++++++                             | 42% ~01m 35s      
  |++++++++++++++++++++++                            | 43% ~01m 33s      
  |++++++++++++++++++++++                            | 44% ~01m 32s      
  |+++++++++++++++++++++++                           | 45% ~01m 30s      
  |+++++++++++++++++++++++                           | 46% ~01m 28s      
  |++++++++++++++++++++++++                          | 47% ~01m 27s      
  |++++++++++++++++++++++++                          | 48% ~01m 25s      
  |+++++++++++++++++++++++++                         | 49% ~01m 24s      
  |+++++++++++++++++++++++++                         | 50% ~01m 22s      
  |++++++++++++++++++++++++++                        | 51% ~01m 20s      
  |++++++++++++++++++++++++++                        | 52% ~01m 18s      
  |+++++++++++++++++++++++++++                       | 53% ~01m 16s      
  |+++++++++++++++++++++++++++                       | 54% ~01m 15s      
  |++++++++++++++++++++++++++++                      | 55% ~01m 13s      
  |++++++++++++++++++++++++++++                      | 56% ~01m 11s      
  |+++++++++++++++++++++++++++++                     | 57% ~01m 10s      
  |+++++++++++++++++++++++++++++                     | 58% ~01m 09s      
  |++++++++++++++++++++++++++++++                    | 59% ~01m 07s      
  |++++++++++++++++++++++++++++++                    | 60% ~01m 05s      
  |+++++++++++++++++++++++++++++++                   | 61% ~01m 04s      
  |+++++++++++++++++++++++++++++++                   | 62% ~01m 02s      
  |++++++++++++++++++++++++++++++++                  | 63% ~01m 00s      
  |++++++++++++++++++++++++++++++++                  | 64% ~59s          
  |+++++++++++++++++++++++++++++++++                 | 65% ~57s          
  |+++++++++++++++++++++++++++++++++                 | 66% ~56s          
  |++++++++++++++++++++++++++++++++++                | 67% ~54s          
  |++++++++++++++++++++++++++++++++++                | 68% ~52s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~52s          
  |+++++++++++++++++++++++++++++++++++               | 70% ~50s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~48s          
  |++++++++++++++++++++++++++++++++++++              | 72% ~47s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~45s          
  |+++++++++++++++++++++++++++++++++++++             | 74% ~43s          
  |++++++++++++++++++++++++++++++++++++++            | 75% ~42s          
  |++++++++++++++++++++++++++++++++++++++            | 76% ~40s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~38s          
  |+++++++++++++++++++++++++++++++++++++++           | 78% ~37s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~35s          
  |++++++++++++++++++++++++++++++++++++++++          | 80% ~33s          
  |+++++++++++++++++++++++++++++++++++++++++         | 81% ~32s          
  |+++++++++++++++++++++++++++++++++++++++++         | 82% ~30s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~28s          
  |++++++++++++++++++++++++++++++++++++++++++        | 84% ~27s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~25s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~23s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~22s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 88% ~20s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~18s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 90% ~17s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~15s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~13s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~12s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~10s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~08s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~07s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~05s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~03s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~02s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=02m 44s
Calculating cluster 7

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~01m 36s      
  |++                                                | 2 % ~01m 34s      
  |++                                                | 3 % ~01m 33s      
  |+++                                               | 5 % ~01m 31s      
  |+++                                               | 6 % ~01m 29s      
  |++++                                              | 7 % ~01m 27s      
  |+++++                                             | 8 % ~01m 32s      
  |+++++                                             | 9 % ~01m 30s      
  |++++++                                            | 10% ~01m 28s      
  |++++++                                            | 12% ~01m 26s      
  |+++++++                                           | 13% ~01m 24s      
  |+++++++                                           | 14% ~01m 23s      
  |++++++++                                          | 15% ~01m 21s      
  |+++++++++                                         | 16% ~01m 20s      
  |+++++++++                                         | 17% ~01m 18s      
  |++++++++++                                        | 19% ~01m 17s      
  |++++++++++                                        | 20% ~01m 16s      
  |+++++++++++                                       | 21% ~01m 14s      
  |++++++++++++                                      | 22% ~01m 13s      
  |++++++++++++                                      | 23% ~01m 12s      
  |+++++++++++++                                     | 24% ~01m 11s      
  |+++++++++++++                                     | 26% ~01m 10s      
  |++++++++++++++                                    | 27% ~01m 09s      
  |++++++++++++++                                    | 28% ~01m 07s      
  |+++++++++++++++                                   | 29% ~01m 06s      
  |++++++++++++++++                                  | 30% ~01m 06s      
  |++++++++++++++++                                  | 31% ~01m 05s      
  |+++++++++++++++++                                 | 33% ~01m 04s      
  |+++++++++++++++++                                 | 34% ~01m 04s      
  |++++++++++++++++++                                | 35% ~01m 03s      
  |+++++++++++++++++++                               | 36% ~01m 02s      
  |+++++++++++++++++++                               | 37% ~01m 00s      
  |++++++++++++++++++++                              | 38% ~59s          
  |++++++++++++++++++++                              | 40% ~58s          
  |+++++++++++++++++++++                             | 41% ~57s          
  |+++++++++++++++++++++                             | 42% ~58s          
  |++++++++++++++++++++++                            | 43% ~56s          
  |+++++++++++++++++++++++                           | 44% ~55s          
  |+++++++++++++++++++++++                           | 45% ~54s          
  |++++++++++++++++++++++++                          | 47% ~53s          
  |++++++++++++++++++++++++                          | 48% ~51s          
  |+++++++++++++++++++++++++                         | 49% ~51s          
  |+++++++++++++++++++++++++                         | 50% ~49s          
  |++++++++++++++++++++++++++                        | 51% ~48s          
  |+++++++++++++++++++++++++++                       | 52% ~47s          
  |+++++++++++++++++++++++++++                       | 53% ~46s          
  |++++++++++++++++++++++++++++                      | 55% ~45s          
  |++++++++++++++++++++++++++++                      | 56% ~44s          
  |+++++++++++++++++++++++++++++                     | 57% ~45s          
  |++++++++++++++++++++++++++++++                    | 58% ~44s          
  |++++++++++++++++++++++++++++++                    | 59% ~43s          
  |+++++++++++++++++++++++++++++++                   | 60% ~41s          
  |+++++++++++++++++++++++++++++++                   | 62% ~40s          
  |++++++++++++++++++++++++++++++++                  | 63% ~39s          
  |++++++++++++++++++++++++++++++++                  | 64% ~37s          
  |+++++++++++++++++++++++++++++++++                 | 65% ~36s          
  |++++++++++++++++++++++++++++++++++                | 66% ~35s          
  |++++++++++++++++++++++++++++++++++                | 67% ~33s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~32s          
  |+++++++++++++++++++++++++++++++++++               | 70% ~31s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~30s          
  |+++++++++++++++++++++++++++++++++++++             | 72% ~28s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~27s          
  |++++++++++++++++++++++++++++++++++++++            | 74% ~26s          
  |++++++++++++++++++++++++++++++++++++++            | 76% ~25s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~24s          
  |+++++++++++++++++++++++++++++++++++++++           | 78% ~22s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~21s          
  |+++++++++++++++++++++++++++++++++++++++++         | 80% ~20s          
  |+++++++++++++++++++++++++++++++++++++++++         | 81% ~19s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~18s          
  |++++++++++++++++++++++++++++++++++++++++++        | 84% ~16s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~15s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 86% ~14s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~13s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 88% ~12s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 90% ~10s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~09s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~08s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~07s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 94% ~06s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~05s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~03s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~02s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=01m 38s
Calculating cluster 8

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~03m 01s      
  |+                                                 | 2 % ~03m 02s      
  |++                                                | 3 % ~03m 01s      
  |++                                                | 4 % ~02m 58s      
  |+++                                               | 5 % ~02m 58s      
  |+++                                               | 6 % ~02m 55s      
  |++++                                              | 7 % ~02m 52s      
  |++++                                              | 8 % ~02m 55s      
  |+++++                                             | 9 % ~02m 51s      
  |+++++                                             | 10% ~02m 48s      
  |++++++                                            | 11% ~02m 46s      
  |++++++                                            | 12% ~02m 44s      
  |+++++++                                           | 13% ~02m 41s      
  |+++++++                                           | 14% ~02m 39s      
  |++++++++                                          | 15% ~02m 36s      
  |++++++++                                          | 16% ~02m 34s      
  |+++++++++                                         | 17% ~02m 32s      
  |+++++++++                                         | 18% ~02m 30s      
  |++++++++++                                        | 19% ~02m 28s      
  |++++++++++                                        | 20% ~02m 30s      
  |+++++++++++                                       | 21% ~02m 28s      
  |+++++++++++                                       | 22% ~02m 25s      
  |++++++++++++                                      | 23% ~02m 23s      
  |++++++++++++                                      | 24% ~02m 21s      
  |+++++++++++++                                     | 25% ~02m 19s      
  |+++++++++++++                                     | 26% ~02m 17s      
  |++++++++++++++                                    | 27% ~02m 15s      
  |++++++++++++++                                    | 28% ~02m 13s      
  |+++++++++++++++                                   | 29% ~02m 11s      
  |+++++++++++++++                                   | 30% ~02m 15s      
  |++++++++++++++++                                  | 31% ~02m 13s      
  |++++++++++++++++                                  | 32% ~02m 10s      
  |+++++++++++++++++                                 | 33% ~02m 08s      
  |+++++++++++++++++                                 | 34% ~02m 06s      
  |++++++++++++++++++                                | 35% ~02m 04s      
  |++++++++++++++++++                                | 36% ~02m 01s      
  |+++++++++++++++++++                               | 37% ~01m 59s      
  |+++++++++++++++++++                               | 38% ~01m 57s      
  |++++++++++++++++++++                              | 39% ~01m 55s      
  |++++++++++++++++++++                              | 40% ~01m 53s      
  |+++++++++++++++++++++                             | 41% ~01m 51s      
  |+++++++++++++++++++++                             | 42% ~01m 49s      
  |++++++++++++++++++++++                            | 43% ~01m 47s      
  |++++++++++++++++++++++                            | 44% ~01m 45s      
  |+++++++++++++++++++++++                           | 45% ~01m 43s      
  |+++++++++++++++++++++++                           | 46% ~01m 41s      
  |++++++++++++++++++++++++                          | 47% ~01m 39s      
  |++++++++++++++++++++++++                          | 48% ~01m 37s      
  |+++++++++++++++++++++++++                         | 49% ~01m 35s      
  |+++++++++++++++++++++++++                         | 50% ~01m 33s      
  |++++++++++++++++++++++++++                        | 51% ~01m 31s      
  |++++++++++++++++++++++++++                        | 52% ~01m 29s      
  |+++++++++++++++++++++++++++                       | 53% ~01m 27s      
  |+++++++++++++++++++++++++++                       | 54% ~01m 25s      
  |++++++++++++++++++++++++++++                      | 55% ~01m 23s      
  |++++++++++++++++++++++++++++                      | 56% ~01m 22s      
  |+++++++++++++++++++++++++++++                     | 57% ~01m 20s      
  |+++++++++++++++++++++++++++++                     | 58% ~01m 18s      
  |++++++++++++++++++++++++++++++                    | 59% ~01m 16s      
  |++++++++++++++++++++++++++++++                    | 60% ~01m 14s      
  |+++++++++++++++++++++++++++++++                   | 61% ~01m 12s      
  |+++++++++++++++++++++++++++++++                   | 62% ~01m 10s      
  |++++++++++++++++++++++++++++++++                  | 63% ~01m 09s      
  |++++++++++++++++++++++++++++++++                  | 64% ~01m 07s      
  |+++++++++++++++++++++++++++++++++                 | 65% ~01m 05s      
  |+++++++++++++++++++++++++++++++++                 | 66% ~01m 03s      
  |++++++++++++++++++++++++++++++++++                | 67% ~01m 01s      
  |++++++++++++++++++++++++++++++++++                | 68% ~59s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~57s          
  |+++++++++++++++++++++++++++++++++++               | 70% ~55s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~54s          
  |++++++++++++++++++++++++++++++++++++              | 72% ~52s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~50s          
  |+++++++++++++++++++++++++++++++++++++             | 74% ~48s          
  |++++++++++++++++++++++++++++++++++++++            | 75% ~46s          
  |++++++++++++++++++++++++++++++++++++++            | 76% ~44s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~42s          
  |+++++++++++++++++++++++++++++++++++++++           | 78% ~41s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~39s          
  |++++++++++++++++++++++++++++++++++++++++          | 80% ~37s          
  |+++++++++++++++++++++++++++++++++++++++++         | 81% ~35s          
  |+++++++++++++++++++++++++++++++++++++++++         | 82% ~33s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~32s          
  |++++++++++++++++++++++++++++++++++++++++++        | 84% ~30s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~28s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~26s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~24s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 88% ~22s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~21s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 90% ~19s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~17s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~15s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~13s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~11s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~09s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~07s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~06s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~04s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~02s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=03m 06s
Calculating cluster 9

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~02m 25s      
  |++                                                | 2 % ~02m 30s      
  |++                                                | 3 % ~02m 26s      
  |+++                                               | 4 % ~02m 24s      
  |+++                                               | 5 % ~02m 35s      
  |++++                                              | 6 % ~02m 31s      
  |++++                                              | 7 % ~02m 28s      
  |+++++                                             | 8 % ~02m 25s      
  |+++++                                             | 9 % ~02m 22s      
  |++++++                                            | 11% ~02m 19s      
  |++++++                                            | 12% ~02m 17s      
  |+++++++                                           | 13% ~02m 15s      
  |+++++++                                           | 14% ~02m 13s      
  |++++++++                                          | 15% ~02m 11s      
  |++++++++                                          | 16% ~02m 09s      
  |+++++++++                                         | 17% ~02m 07s      
  |+++++++++                                         | 18% ~02m 05s      
  |++++++++++                                        | 19% ~02m 04s      
  |++++++++++                                        | 20% ~02m 03s      
  |+++++++++++                                       | 21% ~02m 01s      
  |++++++++++++                                      | 22% ~01m 59s      
  |++++++++++++                                      | 23% ~01m 57s      
  |+++++++++++++                                     | 24% ~01m 56s      
  |+++++++++++++                                     | 25% ~01m 54s      
  |++++++++++++++                                    | 26% ~01m 54s      
  |++++++++++++++                                    | 27% ~01m 52s      
  |+++++++++++++++                                   | 28% ~01m 51s      
  |+++++++++++++++                                   | 29% ~01m 49s      
  |++++++++++++++++                                  | 31% ~01m 47s      
  |++++++++++++++++                                  | 32% ~01m 45s      
  |+++++++++++++++++                                 | 33% ~01m 44s      
  |+++++++++++++++++                                 | 34% ~01m 42s      
  |++++++++++++++++++                                | 35% ~01m 40s      
  |++++++++++++++++++                                | 36% ~01m 38s      
  |+++++++++++++++++++                               | 37% ~01m 37s      
  |+++++++++++++++++++                               | 38% ~01m 39s      
  |++++++++++++++++++++                              | 39% ~01m 38s      
  |++++++++++++++++++++                              | 40% ~01m 36s      
  |+++++++++++++++++++++                             | 41% ~01m 34s      
  |++++++++++++++++++++++                            | 42% ~01m 32s      
  |++++++++++++++++++++++                            | 43% ~01m 30s      
  |+++++++++++++++++++++++                           | 44% ~01m 28s      
  |+++++++++++++++++++++++                           | 45% ~01m 26s      
  |++++++++++++++++++++++++                          | 46% ~01m 24s      
  |++++++++++++++++++++++++                          | 47% ~01m 23s      
  |+++++++++++++++++++++++++                         | 48% ~01m 21s      
  |+++++++++++++++++++++++++                         | 49% ~01m 19s      
  |++++++++++++++++++++++++++                        | 51% ~01m 17s      
  |++++++++++++++++++++++++++                        | 52% ~01m 16s      
  |+++++++++++++++++++++++++++                       | 53% ~01m 14s      
  |+++++++++++++++++++++++++++                       | 54% ~01m 12s      
  |++++++++++++++++++++++++++++                      | 55% ~01m 10s      
  |++++++++++++++++++++++++++++                      | 56% ~01m 09s      
  |+++++++++++++++++++++++++++++                     | 57% ~01m 07s      
  |+++++++++++++++++++++++++++++                     | 58% ~01m 05s      
  |++++++++++++++++++++++++++++++                    | 59% ~01m 04s      
  |++++++++++++++++++++++++++++++                    | 60% ~01m 02s      
  |+++++++++++++++++++++++++++++++                   | 61% ~01m 00s      
  |++++++++++++++++++++++++++++++++                  | 62% ~59s          
  |++++++++++++++++++++++++++++++++                  | 63% ~57s          
  |+++++++++++++++++++++++++++++++++                 | 64% ~55s          
  |+++++++++++++++++++++++++++++++++                 | 65% ~54s          
  |++++++++++++++++++++++++++++++++++                | 66% ~52s          
  |++++++++++++++++++++++++++++++++++                | 67% ~51s          
  |+++++++++++++++++++++++++++++++++++               | 68% ~49s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~47s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~46s          
  |++++++++++++++++++++++++++++++++++++              | 72% ~44s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~42s          
  |+++++++++++++++++++++++++++++++++++++             | 74% ~41s          
  |++++++++++++++++++++++++++++++++++++++            | 75% ~39s          
  |++++++++++++++++++++++++++++++++++++++            | 76% ~37s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~36s          
  |+++++++++++++++++++++++++++++++++++++++           | 78% ~34s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~32s          
  |++++++++++++++++++++++++++++++++++++++++          | 80% ~31s          
  |+++++++++++++++++++++++++++++++++++++++++         | 81% ~29s          
  |++++++++++++++++++++++++++++++++++++++++++        | 82% ~27s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~26s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 84% ~24s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~23s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 86% ~21s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~19s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 88% ~18s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~16s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~15s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~13s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~11s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~10s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~08s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~07s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~05s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~03s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~02s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=02m 33s
Calculating cluster 10

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~02m 51s      
  |++                                                | 2 % ~02m 48s      
  |++                                                | 3 % ~02m 46s      
  |+++                                               | 4 % ~02m 44s      
  |+++                                               | 5 % ~02m 42s      
  |++++                                              | 6 % ~02m 41s      
  |++++                                              | 7 % ~02m 39s      
  |+++++                                             | 8 % ~02m 37s      
  |+++++                                             | 9 % ~02m 35s      
  |++++++                                            | 10% ~02m 33s      
  |++++++                                            | 11% ~02m 31s      
  |+++++++                                           | 12% ~02m 30s      
  |+++++++                                           | 13% ~02m 29s      
  |++++++++                                          | 14% ~02m 27s      
  |++++++++                                          | 15% ~02m 25s      
  |+++++++++                                         | 16% ~02m 23s      
  |+++++++++                                         | 17% ~02m 22s      
  |++++++++++                                        | 18% ~02m 20s      
  |++++++++++                                        | 19% ~02m 19s      
  |+++++++++++                                       | 20% ~02m 18s      
  |+++++++++++                                       | 21% ~02m 21s      
  |++++++++++++                                      | 22% ~02m 21s      
  |++++++++++++                                      | 23% ~02m 21s      
  |+++++++++++++                                     | 24% ~02m 21s      
  |+++++++++++++                                     | 25% ~02m 19s      
  |++++++++++++++                                    | 26% ~02m 17s      
  |++++++++++++++                                    | 27% ~02m 15s      
  |+++++++++++++++                                   | 28% ~02m 13s      
  |+++++++++++++++                                   | 29% ~02m 11s      
  |++++++++++++++++                                  | 30% ~02m 09s      
  |++++++++++++++++                                  | 31% ~02m 06s      
  |+++++++++++++++++                                 | 32% ~02m 04s      
  |+++++++++++++++++                                 | 33% ~02m 02s      
  |++++++++++++++++++                                | 34% ~02m 00s      
  |++++++++++++++++++                                | 35% ~01m 58s      
  |+++++++++++++++++++                               | 36% ~01m 56s      
  |+++++++++++++++++++                               | 37% ~01m 54s      
  |++++++++++++++++++++                              | 38% ~01m 53s      
  |++++++++++++++++++++                              | 39% ~01m 51s      
  |+++++++++++++++++++++                             | 40% ~01m 49s      
  |+++++++++++++++++++++                             | 41% ~01m 47s      
  |++++++++++++++++++++++                            | 42% ~01m 45s      
  |++++++++++++++++++++++                            | 43% ~01m 43s      
  |+++++++++++++++++++++++                           | 44% ~01m 41s      
  |+++++++++++++++++++++++                           | 45% ~01m 39s      
  |++++++++++++++++++++++++                          | 46% ~01m 37s      
  |++++++++++++++++++++++++                          | 47% ~01m 37s      
  |+++++++++++++++++++++++++                         | 48% ~01m 35s      
  |+++++++++++++++++++++++++                         | 49% ~01m 33s      
  |++++++++++++++++++++++++++                        | 51% ~01m 31s      
  |++++++++++++++++++++++++++                        | 52% ~01m 29s      
  |+++++++++++++++++++++++++++                       | 53% ~01m 27s      
  |+++++++++++++++++++++++++++                       | 54% ~01m 25s      
  |++++++++++++++++++++++++++++                      | 55% ~01m 23s      
  |++++++++++++++++++++++++++++                      | 56% ~01m 21s      
  |+++++++++++++++++++++++++++++                     | 57% ~01m 19s      
  |+++++++++++++++++++++++++++++                     | 58% ~01m 19s      
  |++++++++++++++++++++++++++++++                    | 59% ~01m 17s      
  |++++++++++++++++++++++++++++++                    | 60% ~01m 15s      
  |+++++++++++++++++++++++++++++++                   | 61% ~01m 13s      
  |+++++++++++++++++++++++++++++++                   | 62% ~01m 11s      
  |++++++++++++++++++++++++++++++++                  | 63% ~01m 09s      
  |++++++++++++++++++++++++++++++++                  | 64% ~01m 08s      
  |+++++++++++++++++++++++++++++++++                 | 65% ~01m 06s      
  |+++++++++++++++++++++++++++++++++                 | 66% ~01m 04s      
  |++++++++++++++++++++++++++++++++++                | 67% ~01m 02s      
  |++++++++++++++++++++++++++++++++++                | 68% ~60s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~58s          
  |+++++++++++++++++++++++++++++++++++               | 70% ~56s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~54s          
  |++++++++++++++++++++++++++++++++++++              | 72% ~52s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~50s          
  |+++++++++++++++++++++++++++++++++++++             | 74% ~48s          
  |++++++++++++++++++++++++++++++++++++++            | 75% ~46s          
  |++++++++++++++++++++++++++++++++++++++            | 76% ~44s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~43s          
  |+++++++++++++++++++++++++++++++++++++++           | 78% ~41s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~39s          
  |++++++++++++++++++++++++++++++++++++++++          | 80% ~37s          
  |+++++++++++++++++++++++++++++++++++++++++         | 81% ~35s          
  |+++++++++++++++++++++++++++++++++++++++++         | 82% ~33s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~31s          
  |++++++++++++++++++++++++++++++++++++++++++        | 84% ~30s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~28s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~26s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~24s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 88% ~22s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~20s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 90% ~18s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~17s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~15s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~13s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~11s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~09s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~07s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~06s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~04s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~02s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=03m 01s
Calculating cluster 11

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~02m 40s      
  |++                                                | 2 % ~02m 34s      
  |++                                                | 3 % ~02m 31s      
  |+++                                               | 4 % ~02m 28s      
  |+++                                               | 5 % ~02m 27s      
  |++++                                              | 6 % ~02m 26s      
  |++++                                              | 7 % ~02m 24s      
  |+++++                                             | 8 % ~02m 22s      
  |+++++                                             | 9 % ~02m 21s      
  |++++++                                            | 10% ~02m 45s      
  |++++++                                            | 11% ~02m 41s      
  |+++++++                                           | 12% ~02m 37s      
  |+++++++                                           | 13% ~02m 33s      
  |++++++++                                          | 14% ~02m 30s      
  |++++++++                                          | 15% ~02m 27s      
  |+++++++++                                         | 16% ~02m 24s      
  |+++++++++                                         | 17% ~02m 21s      
  |++++++++++                                        | 18% ~02m 19s      
  |++++++++++                                        | 19% ~02m 16s      
  |+++++++++++                                       | 20% ~02m 14s      
  |+++++++++++                                       | 21% ~02m 12s      
  |++++++++++++                                      | 22% ~02m 09s      
  |++++++++++++                                      | 23% ~02m 07s      
  |+++++++++++++                                     | 24% ~02m 05s      
  |+++++++++++++                                     | 26% ~02m 03s      
  |++++++++++++++                                    | 27% ~02m 01s      
  |++++++++++++++                                    | 28% ~01m 59s      
  |+++++++++++++++                                   | 29% ~01m 57s      
  |+++++++++++++++                                   | 30% ~01m 55s      
  |++++++++++++++++                                  | 31% ~01m 54s      
  |++++++++++++++++                                  | 32% ~01m 52s      
  |+++++++++++++++++                                 | 33% ~01m 50s      
  |+++++++++++++++++                                 | 34% ~01m 48s      
  |++++++++++++++++++                                | 35% ~01m 46s      
  |++++++++++++++++++                                | 36% ~01m 44s      
  |+++++++++++++++++++                               | 37% ~01m 43s      
  |+++++++++++++++++++                               | 38% ~01m 42s      
  |++++++++++++++++++++                              | 39% ~01m 40s      
  |++++++++++++++++++++                              | 40% ~01m 38s      
  |+++++++++++++++++++++                             | 41% ~01m 36s      
  |+++++++++++++++++++++                             | 42% ~01m 35s      
  |++++++++++++++++++++++                            | 43% ~01m 33s      
  |++++++++++++++++++++++                            | 44% ~01m 31s      
  |+++++++++++++++++++++++                           | 45% ~01m 29s      
  |+++++++++++++++++++++++                           | 46% ~01m 27s      
  |++++++++++++++++++++++++                          | 47% ~01m 26s      
  |++++++++++++++++++++++++                          | 48% ~01m 24s      
  |+++++++++++++++++++++++++                         | 49% ~01m 22s      
  |+++++++++++++++++++++++++                         | 50% ~01m 20s      
  |++++++++++++++++++++++++++                        | 51% ~01m 19s      
  |+++++++++++++++++++++++++++                       | 52% ~01m 17s      
  |+++++++++++++++++++++++++++                       | 53% ~01m 16s      
  |++++++++++++++++++++++++++++                      | 54% ~01m 14s      
  |++++++++++++++++++++++++++++                      | 55% ~01m 13s      
  |+++++++++++++++++++++++++++++                     | 56% ~01m 11s      
  |+++++++++++++++++++++++++++++                     | 57% ~01m 09s      
  |++++++++++++++++++++++++++++++                    | 58% ~01m 07s      
  |++++++++++++++++++++++++++++++                    | 59% ~01m 06s      
  |+++++++++++++++++++++++++++++++                   | 60% ~01m 04s      
  |+++++++++++++++++++++++++++++++                   | 61% ~01m 02s      
  |++++++++++++++++++++++++++++++++                  | 62% ~01m 01s      
  |++++++++++++++++++++++++++++++++                  | 63% ~59s          
  |+++++++++++++++++++++++++++++++++                 | 64% ~58s          
  |+++++++++++++++++++++++++++++++++                 | 65% ~56s          
  |++++++++++++++++++++++++++++++++++                | 66% ~54s          
  |++++++++++++++++++++++++++++++++++                | 67% ~53s          
  |+++++++++++++++++++++++++++++++++++               | 68% ~51s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~49s          
  |++++++++++++++++++++++++++++++++++++              | 70% ~48s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~46s          
  |+++++++++++++++++++++++++++++++++++++             | 72% ~44s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~43s          
  |++++++++++++++++++++++++++++++++++++++            | 74% ~42s          
  |++++++++++++++++++++++++++++++++++++++            | 76% ~40s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~39s          
  |+++++++++++++++++++++++++++++++++++++++           | 78% ~37s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~35s          
  |++++++++++++++++++++++++++++++++++++++++          | 80% ~33s          
  |+++++++++++++++++++++++++++++++++++++++++         | 81% ~32s          
  |+++++++++++++++++++++++++++++++++++++++++         | 82% ~30s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~28s          
  |++++++++++++++++++++++++++++++++++++++++++        | 84% ~27s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~25s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~23s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~22s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 88% ~20s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~18s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 90% ~17s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~15s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~13s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~12s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~10s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~08s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~07s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~05s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~03s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~02s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=02m 40s
Calculating cluster 12

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~02m 40s      
  |++                                                | 2 % ~02m 35s      
  |++                                                | 3 % ~02m 35s      
  |+++                                               | 4 % ~02m 34s      
  |+++                                               | 5 % ~02m 32s      
  |++++                                              | 6 % ~02m 31s      
  |++++                                              | 7 % ~02m 29s      
  |+++++                                             | 8 % ~02m 27s      
  |+++++                                             | 9 % ~02m 30s      
  |++++++                                            | 11% ~02m 28s      
  |++++++                                            | 12% ~02m 26s      
  |+++++++                                           | 13% ~02m 24s      
  |+++++++                                           | 14% ~02m 22s      
  |++++++++                                          | 15% ~02m 20s      
  |++++++++                                          | 16% ~02m 18s      
  |+++++++++                                         | 17% ~02m 18s      
  |+++++++++                                         | 18% ~02m 17s      
  |++++++++++                                        | 19% ~02m 15s      
  |++++++++++                                        | 20% ~02m 13s      
  |+++++++++++                                       | 21% ~02m 12s      
  |++++++++++++                                      | 22% ~02m 10s      
  |++++++++++++                                      | 23% ~02m 17s      
  |+++++++++++++                                     | 24% ~02m 14s      
  |+++++++++++++                                     | 25% ~02m 12s      
  |++++++++++++++                                    | 26% ~02m 09s      
  |++++++++++++++                                    | 27% ~02m 07s      
  |+++++++++++++++                                   | 28% ~02m 05s      
  |+++++++++++++++                                   | 29% ~02m 02s      
  |++++++++++++++++                                  | 31% ~02m 00s      
  |++++++++++++++++                                  | 32% ~01m 58s      
  |+++++++++++++++++                                 | 33% ~01m 56s      
  |+++++++++++++++++                                 | 34% ~01m 54s      
  |++++++++++++++++++                                | 35% ~01m 52s      
  |++++++++++++++++++                                | 36% ~01m 50s      
  |+++++++++++++++++++                               | 37% ~01m 48s      
  |+++++++++++++++++++                               | 38% ~01m 46s      
  |++++++++++++++++++++                              | 39% ~01m 44s      
  |++++++++++++++++++++                              | 40% ~01m 42s      
  |+++++++++++++++++++++                             | 41% ~01m 40s      
  |++++++++++++++++++++++                            | 42% ~01m 38s      
  |++++++++++++++++++++++                            | 43% ~01m 36s      
  |+++++++++++++++++++++++                           | 44% ~01m 34s      
  |+++++++++++++++++++++++                           | 45% ~01m 34s      
  |++++++++++++++++++++++++                          | 46% ~01m 32s      
  |++++++++++++++++++++++++                          | 47% ~01m 31s      
  |+++++++++++++++++++++++++                         | 48% ~01m 30s      
  |+++++++++++++++++++++++++                         | 49% ~01m 28s      
  |++++++++++++++++++++++++++                        | 51% ~01m 28s      
  |++++++++++++++++++++++++++                        | 52% ~01m 26s      
  |+++++++++++++++++++++++++++                       | 53% ~01m 24s      
  |+++++++++++++++++++++++++++                       | 54% ~01m 22s      
  |++++++++++++++++++++++++++++                      | 55% ~01m 20s      
  |++++++++++++++++++++++++++++                      | 56% ~01m 18s      
  |+++++++++++++++++++++++++++++                     | 57% ~01m 16s      
  |+++++++++++++++++++++++++++++                     | 58% ~01m 14s      
  |++++++++++++++++++++++++++++++                    | 59% ~01m 12s      
  |++++++++++++++++++++++++++++++                    | 60% ~01m 10s      
  |+++++++++++++++++++++++++++++++                   | 61% ~01m 08s      
  |++++++++++++++++++++++++++++++++                  | 62% ~01m 06s      
  |++++++++++++++++++++++++++++++++                  | 63% ~01m 05s      
  |+++++++++++++++++++++++++++++++++                 | 64% ~01m 03s      
  |+++++++++++++++++++++++++++++++++                 | 65% ~01m 01s      
  |++++++++++++++++++++++++++++++++++                | 66% ~59s          
  |++++++++++++++++++++++++++++++++++                | 67% ~57s          
  |+++++++++++++++++++++++++++++++++++               | 68% ~55s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~53s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~51s          
  |++++++++++++++++++++++++++++++++++++              | 72% ~49s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~48s          
  |+++++++++++++++++++++++++++++++++++++             | 74% ~46s          
  |++++++++++++++++++++++++++++++++++++++            | 75% ~44s          
  |++++++++++++++++++++++++++++++++++++++            | 76% ~42s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~41s          
  |+++++++++++++++++++++++++++++++++++++++           | 78% ~39s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~37s          
  |++++++++++++++++++++++++++++++++++++++++          | 80% ~35s          
  |+++++++++++++++++++++++++++++++++++++++++         | 81% ~33s          
  |++++++++++++++++++++++++++++++++++++++++++        | 82% ~31s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~29s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 84% ~27s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~26s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 86% ~24s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~22s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 88% ~20s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~18s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~17s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~15s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~13s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~11s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~09s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~07s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~06s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~04s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~02s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=02m 53s
Calculating cluster 13

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~01m 59s      
  |++                                                | 2 % ~01m 59s      
  |++                                                | 3 % ~01m 57s      
  |+++                                               | 4 % ~02m 08s      
  |+++                                               | 5 % ~02m 04s      
  |++++                                              | 7 % ~02m 00s      
  |++++                                              | 8 % ~01m 57s      
  |+++++                                             | 9 % ~01m 55s      
  |+++++                                             | 10% ~01m 53s      
  |++++++                                            | 11% ~01m 51s      
  |++++++                                            | 12% ~01m 49s      
  |+++++++                                           | 13% ~01m 47s      
  |++++++++                                          | 14% ~01m 46s      
  |++++++++                                          | 15% ~01m 44s      
  |+++++++++                                         | 16% ~01m 42s      
  |+++++++++                                         | 17% ~01m 41s      
  |++++++++++                                        | 18% ~01m 40s      
  |++++++++++                                        | 20% ~01m 38s      
  |+++++++++++                                       | 21% ~01m 37s      
  |+++++++++++                                       | 22% ~01m 35s      
  |++++++++++++                                      | 23% ~01m 34s      
  |++++++++++++                                      | 24% ~01m 33s      
  |+++++++++++++                                     | 25% ~01m 31s      
  |++++++++++++++                                    | 26% ~01m 30s      
  |++++++++++++++                                    | 27% ~01m 29s      
  |+++++++++++++++                                   | 28% ~01m 27s      
  |+++++++++++++++                                   | 29% ~01m 27s      
  |++++++++++++++++                                  | 30% ~01m 26s      
  |++++++++++++++++                                  | 32% ~01m 25s      
  |+++++++++++++++++                                 | 33% ~01m 23s      
  |+++++++++++++++++                                 | 34% ~01m 22s      
  |++++++++++++++++++                                | 35% ~01m 20s      
  |++++++++++++++++++                                | 36% ~01m 19s      
  |+++++++++++++++++++                               | 37% ~01m 18s      
  |++++++++++++++++++++                              | 38% ~01m 16s      
  |++++++++++++++++++++                              | 39% ~01m 15s      
  |+++++++++++++++++++++                             | 40% ~01m 13s      
  |+++++++++++++++++++++                             | 41% ~01m 12s      
  |++++++++++++++++++++++                            | 42% ~01m 11s      
  |++++++++++++++++++++++                            | 43% ~01m 10s      
  |+++++++++++++++++++++++                           | 45% ~01m 10s      
  |+++++++++++++++++++++++                           | 46% ~01m 08s      
  |++++++++++++++++++++++++                          | 47% ~01m 07s      
  |++++++++++++++++++++++++                          | 48% ~01m 05s      
  |+++++++++++++++++++++++++                         | 49% ~01m 04s      
  |+++++++++++++++++++++++++                         | 50% ~01m 03s      
  |++++++++++++++++++++++++++                        | 51% ~01m 01s      
  |+++++++++++++++++++++++++++                       | 52% ~60s          
  |+++++++++++++++++++++++++++                       | 53% ~58s          
  |++++++++++++++++++++++++++++                      | 54% ~57s          
  |++++++++++++++++++++++++++++                      | 55% ~56s          
  |+++++++++++++++++++++++++++++                     | 57% ~54s          
  |+++++++++++++++++++++++++++++                     | 58% ~53s          
  |++++++++++++++++++++++++++++++                    | 59% ~53s          
  |++++++++++++++++++++++++++++++                    | 60% ~52s          
  |+++++++++++++++++++++++++++++++                   | 61% ~50s          
  |+++++++++++++++++++++++++++++++                   | 62% ~49s          
  |++++++++++++++++++++++++++++++++                  | 63% ~47s          
  |+++++++++++++++++++++++++++++++++                 | 64% ~46s          
  |+++++++++++++++++++++++++++++++++                 | 65% ~45s          
  |++++++++++++++++++++++++++++++++++                | 66% ~43s          
  |++++++++++++++++++++++++++++++++++                | 67% ~42s          
  |+++++++++++++++++++++++++++++++++++               | 68% ~40s          
  |+++++++++++++++++++++++++++++++++++               | 70% ~39s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~37s          
  |++++++++++++++++++++++++++++++++++++              | 72% ~36s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~35s          
  |+++++++++++++++++++++++++++++++++++++             | 74% ~33s          
  |++++++++++++++++++++++++++++++++++++++            | 75% ~32s          
  |+++++++++++++++++++++++++++++++++++++++           | 76% ~30s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~29s          
  |++++++++++++++++++++++++++++++++++++++++          | 78% ~28s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~26s          
  |+++++++++++++++++++++++++++++++++++++++++         | 80% ~25s          
  |+++++++++++++++++++++++++++++++++++++++++         | 82% ~23s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~22s          
  |++++++++++++++++++++++++++++++++++++++++++        | 84% ~21s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~19s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~18s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~17s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 88% ~15s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~14s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 90% ~13s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~11s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 92% ~10s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~08s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~07s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~06s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~04s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~03s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=02m 08s
Calculating cluster 14

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~01m 52s      
  |++                                                | 2 % ~02m 09s      
  |++                                                | 3 % ~02m 01s      
  |+++                                               | 4 % ~01m 55s      
  |+++                                               | 5 % ~01m 51s      
  |++++                                              | 7 % ~01m 48s      
  |++++                                              | 8 % ~01m 45s      
  |+++++                                             | 9 % ~01m 43s      
  |+++++                                             | 10% ~01m 41s      
  |++++++                                            | 11% ~01m 40s      
  |+++++++                                           | 12% ~01m 38s      
  |+++++++                                           | 13% ~01m 37s      
  |++++++++                                          | 14% ~01m 35s      
  |++++++++                                          | 15% ~01m 34s      
  |+++++++++                                         | 16% ~01m 33s      
  |+++++++++                                         | 18% ~01m 31s      
  |++++++++++                                        | 19% ~01m 30s      
  |++++++++++                                        | 20% ~01m 28s      
  |+++++++++++                                       | 21% ~01m 27s      
  |+++++++++++                                       | 22% ~01m 27s      
  |++++++++++++                                      | 23% ~01m 26s      
  |+++++++++++++                                     | 24% ~01m 24s      
  |+++++++++++++                                     | 25% ~01m 23s      
  |++++++++++++++                                    | 26% ~01m 22s      
  |++++++++++++++                                    | 27% ~01m 20s      
  |+++++++++++++++                                   | 29% ~01m 19s      
  |+++++++++++++++                                   | 30% ~01m 18s      
  |++++++++++++++++                                  | 31% ~01m 16s      
  |++++++++++++++++                                  | 32% ~01m 18s      
  |+++++++++++++++++                                 | 33% ~01m 16s      
  |++++++++++++++++++                                | 34% ~01m 15s      
  |++++++++++++++++++                                | 35% ~01m 14s      
  |+++++++++++++++++++                               | 36% ~01m 12s      
  |+++++++++++++++++++                               | 37% ~01m 11s      
  |++++++++++++++++++++                              | 38% ~01m 10s      
  |++++++++++++++++++++                              | 40% ~01m 08s      
  |+++++++++++++++++++++                             | 41% ~01m 07s      
  |+++++++++++++++++++++                             | 42% ~01m 06s      
  |++++++++++++++++++++++                            | 43% ~01m 04s      
  |++++++++++++++++++++++                            | 44% ~01m 03s      
  |+++++++++++++++++++++++                           | 45% ~01m 02s      
  |++++++++++++++++++++++++                          | 46% ~01m 04s      
  |++++++++++++++++++++++++                          | 47% ~01m 02s      
  |+++++++++++++++++++++++++                         | 48% ~01m 01s      
  |+++++++++++++++++++++++++                         | 49% ~59s          
  |++++++++++++++++++++++++++                        | 51% ~58s          
  |++++++++++++++++++++++++++                        | 52% ~56s          
  |+++++++++++++++++++++++++++                       | 53% ~55s          
  |+++++++++++++++++++++++++++                       | 54% ~54s          
  |++++++++++++++++++++++++++++                      | 55% ~52s          
  |+++++++++++++++++++++++++++++                     | 56% ~51s          
  |+++++++++++++++++++++++++++++                     | 57% ~49s          
  |++++++++++++++++++++++++++++++                    | 58% ~48s          
  |++++++++++++++++++++++++++++++                    | 59% ~47s          
  |+++++++++++++++++++++++++++++++                   | 60% ~45s          
  |+++++++++++++++++++++++++++++++                   | 62% ~44s          
  |++++++++++++++++++++++++++++++++                  | 63% ~43s          
  |++++++++++++++++++++++++++++++++                  | 64% ~41s          
  |+++++++++++++++++++++++++++++++++                 | 65% ~40s          
  |+++++++++++++++++++++++++++++++++                 | 66% ~39s          
  |++++++++++++++++++++++++++++++++++                | 67% ~38s          
  |+++++++++++++++++++++++++++++++++++               | 68% ~36s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~35s          
  |++++++++++++++++++++++++++++++++++++              | 70% ~34s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~32s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~31s          
  |+++++++++++++++++++++++++++++++++++++             | 74% ~30s          
  |++++++++++++++++++++++++++++++++++++++            | 75% ~29s          
  |++++++++++++++++++++++++++++++++++++++            | 76% ~27s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~26s          
  |++++++++++++++++++++++++++++++++++++++++          | 78% ~25s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~24s          
  |+++++++++++++++++++++++++++++++++++++++++         | 80% ~22s          
  |+++++++++++++++++++++++++++++++++++++++++         | 81% ~21s          
  |++++++++++++++++++++++++++++++++++++++++++        | 82% ~20s          
  |++++++++++++++++++++++++++++++++++++++++++        | 84% ~19s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~17s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~16s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~15s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 88% ~14s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~12s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 90% ~11s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~10s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 92% ~09s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~07s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~06s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~05s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~04s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~02s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=01m 52s
Calculating cluster 15

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~02m 45s      
  |++                                                | 2 % ~02m 43s      
  |++                                                | 3 % ~02m 42s      
  |+++                                               | 4 % ~02m 40s      
  |+++                                               | 5 % ~02m 38s      
  |++++                                              | 6 % ~02m 36s      
  |++++                                              | 7 % ~02m 49s      
  |+++++                                             | 8 % ~02m 46s      
  |+++++                                             | 9 % ~02m 42s      
  |++++++                                            | 10% ~02m 39s      
  |++++++                                            | 11% ~02m 37s      
  |+++++++                                           | 12% ~02m 34s      
  |+++++++                                           | 13% ~02m 32s      
  |++++++++                                          | 14% ~02m 30s      
  |++++++++                                          | 15% ~02m 28s      
  |+++++++++                                         | 16% ~02m 26s      
  |+++++++++                                         | 17% ~02m 24s      
  |++++++++++                                        | 18% ~02m 34s      
  |++++++++++                                        | 19% ~02m 31s      
  |+++++++++++                                       | 20% ~02m 29s      
  |+++++++++++                                       | 21% ~02m 26s      
  |++++++++++++                                      | 22% ~02m 23s      
  |++++++++++++                                      | 23% ~02m 21s      
  |+++++++++++++                                     | 24% ~02m 18s      
  |+++++++++++++                                     | 26% ~02m 16s      
  |++++++++++++++                                    | 27% ~02m 14s      
  |++++++++++++++                                    | 28% ~02m 11s      
  |+++++++++++++++                                   | 29% ~02m 09s      
  |+++++++++++++++                                   | 30% ~02m 07s      
  |++++++++++++++++                                  | 31% ~02m 05s      
  |++++++++++++++++                                  | 32% ~02m 03s      
  |+++++++++++++++++                                 | 33% ~02m 01s      
  |+++++++++++++++++                                 | 34% ~01m 58s      
  |++++++++++++++++++                                | 35% ~01m 56s      
  |++++++++++++++++++                                | 36% ~01m 54s      
  |+++++++++++++++++++                               | 37% ~01m 52s      
  |+++++++++++++++++++                               | 38% ~01m 50s      
  |++++++++++++++++++++                              | 39% ~01m 48s      
  |++++++++++++++++++++                              | 40% ~01m 46s      
  |+++++++++++++++++++++                             | 41% ~01m 44s      
  |+++++++++++++++++++++                             | 42% ~01m 43s      
  |++++++++++++++++++++++                            | 43% ~01m 41s      
  |++++++++++++++++++++++                            | 44% ~01m 40s      
  |+++++++++++++++++++++++                           | 45% ~01m 38s      
  |+++++++++++++++++++++++                           | 46% ~01m 36s      
  |++++++++++++++++++++++++                          | 47% ~01m 34s      
  |++++++++++++++++++++++++                          | 48% ~01m 32s      
  |+++++++++++++++++++++++++                         | 49% ~01m 30s      
  |+++++++++++++++++++++++++                         | 50% ~01m 28s      
  |++++++++++++++++++++++++++                        | 51% ~01m 26s      
  |+++++++++++++++++++++++++++                       | 52% ~01m 24s      
  |+++++++++++++++++++++++++++                       | 53% ~01m 22s      
  |++++++++++++++++++++++++++++                      | 54% ~01m 21s      
  |++++++++++++++++++++++++++++                      | 55% ~01m 19s      
  |+++++++++++++++++++++++++++++                     | 56% ~01m 17s      
  |+++++++++++++++++++++++++++++                     | 57% ~01m 15s      
  |++++++++++++++++++++++++++++++                    | 58% ~01m 13s      
  |++++++++++++++++++++++++++++++                    | 59% ~01m 11s      
  |+++++++++++++++++++++++++++++++                   | 60% ~01m 10s      
  |+++++++++++++++++++++++++++++++                   | 61% ~01m 08s      
  |++++++++++++++++++++++++++++++++                  | 62% ~01m 06s      
  |++++++++++++++++++++++++++++++++                  | 63% ~01m 04s      
  |+++++++++++++++++++++++++++++++++                 | 64% ~01m 03s      
  |+++++++++++++++++++++++++++++++++                 | 65% ~01m 01s      
  |++++++++++++++++++++++++++++++++++                | 66% ~59s          
  |++++++++++++++++++++++++++++++++++                | 67% ~57s          
  |+++++++++++++++++++++++++++++++++++               | 68% ~55s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~54s          
  |++++++++++++++++++++++++++++++++++++              | 70% ~52s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~50s          
  |+++++++++++++++++++++++++++++++++++++             | 72% ~48s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~47s          
  |++++++++++++++++++++++++++++++++++++++            | 74% ~45s          
  |++++++++++++++++++++++++++++++++++++++            | 76% ~43s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~41s          
  |+++++++++++++++++++++++++++++++++++++++           | 78% ~39s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~38s          
  |++++++++++++++++++++++++++++++++++++++++          | 80% ~37s          
  |+++++++++++++++++++++++++++++++++++++++++         | 81% ~35s          
  |+++++++++++++++++++++++++++++++++++++++++         | 82% ~33s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~31s          
  |++++++++++++++++++++++++++++++++++++++++++        | 84% ~29s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~27s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~25s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~24s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 88% ~22s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~20s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 90% ~18s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~16s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~14s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~13s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~11s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~09s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~07s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~05s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~04s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~02s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=02m 56s
Calculating cluster 16

  |                                                  | 0 % ~calculating  
  |+                                                 | 1 % ~02m 24s      
  |++                                                | 2 % ~02m 20s      
  |++                                                | 3 % ~02m 22s      
  |+++                                               | 4 % ~02m 20s      
  |+++                                               | 5 % ~02m 18s      
  |++++                                              | 6 % ~02m 16s      
  |++++                                              | 7 % ~02m 15s      
  |+++++                                             | 8 % ~02m 13s      
  |+++++                                             | 9 % ~02m 12s      
  |++++++                                            | 10% ~02m 11s      
  |++++++                                            | 11% ~02m 09s      
  |+++++++                                           | 12% ~02m 08s      
  |+++++++                                           | 13% ~02m 07s      
  |++++++++                                          | 14% ~02m 08s      
  |++++++++                                          | 15% ~02m 06s      
  |+++++++++                                         | 16% ~02m 04s      
  |+++++++++                                         | 17% ~02m 03s      
  |++++++++++                                        | 18% ~02m 01s      
  |++++++++++                                        | 19% ~01m 59s      
  |+++++++++++                                       | 20% ~01m 57s      
  |+++++++++++                                       | 21% ~01m 56s      
  |++++++++++++                                      | 22% ~01m 54s      
  |++++++++++++                                      | 23% ~01m 53s      
  |+++++++++++++                                     | 24% ~01m 51s      
  |+++++++++++++                                     | 25% ~01m 50s      
  |++++++++++++++                                    | 26% ~01m 48s      
  |++++++++++++++                                    | 27% ~01m 47s      
  |+++++++++++++++                                   | 28% ~01m 52s      
  |+++++++++++++++                                   | 29% ~01m 50s      
  |++++++++++++++++                                  | 30% ~01m 48s      
  |++++++++++++++++                                  | 31% ~01m 46s      
  |+++++++++++++++++                                 | 32% ~01m 44s      
  |+++++++++++++++++                                 | 33% ~01m 42s      
  |++++++++++++++++++                                | 34% ~01m 41s      
  |++++++++++++++++++                                | 35% ~01m 39s      
  |+++++++++++++++++++                               | 36% ~01m 37s      
  |+++++++++++++++++++                               | 37% ~01m 35s      
  |++++++++++++++++++++                              | 38% ~01m 34s      
  |++++++++++++++++++++                              | 39% ~01m 32s      
  |+++++++++++++++++++++                             | 40% ~01m 30s      
  |+++++++++++++++++++++                             | 41% ~01m 28s      
  |++++++++++++++++++++++                            | 42% ~01m 27s      
  |++++++++++++++++++++++                            | 43% ~01m 25s      
  |+++++++++++++++++++++++                           | 44% ~01m 23s      
  |+++++++++++++++++++++++                           | 45% ~01m 22s      
  |++++++++++++++++++++++++                          | 46% ~01m 20s      
  |++++++++++++++++++++++++                          | 47% ~01m 18s      
  |+++++++++++++++++++++++++                         | 48% ~01m 17s      
  |+++++++++++++++++++++++++                         | 49% ~01m 15s      
  |++++++++++++++++++++++++++                        | 51% ~01m 14s      
  |++++++++++++++++++++++++++                        | 52% ~01m 12s      
  |+++++++++++++++++++++++++++                       | 53% ~01m 11s      
  |+++++++++++++++++++++++++++                       | 54% ~01m 09s      
  |++++++++++++++++++++++++++++                      | 55% ~01m 07s      
  |++++++++++++++++++++++++++++                      | 56% ~01m 06s      
  |+++++++++++++++++++++++++++++                     | 57% ~01m 04s      
  |+++++++++++++++++++++++++++++                     | 58% ~01m 03s      
  |++++++++++++++++++++++++++++++                    | 59% ~01m 01s      
  |++++++++++++++++++++++++++++++                    | 60% ~60s          
  |+++++++++++++++++++++++++++++++                   | 61% ~59s          
  |+++++++++++++++++++++++++++++++                   | 62% ~57s          
  |++++++++++++++++++++++++++++++++                  | 63% ~55s          
  |++++++++++++++++++++++++++++++++                  | 64% ~54s          
  |+++++++++++++++++++++++++++++++++                 | 65% ~52s          
  |+++++++++++++++++++++++++++++++++                 | 66% ~51s          
  |++++++++++++++++++++++++++++++++++                | 67% ~49s          
  |++++++++++++++++++++++++++++++++++                | 68% ~48s          
  |+++++++++++++++++++++++++++++++++++               | 69% ~46s          
  |+++++++++++++++++++++++++++++++++++               | 70% ~45s          
  |++++++++++++++++++++++++++++++++++++              | 71% ~43s          
  |++++++++++++++++++++++++++++++++++++              | 72% ~42s          
  |+++++++++++++++++++++++++++++++++++++             | 73% ~40s          
  |+++++++++++++++++++++++++++++++++++++             | 74% ~39s          
  |++++++++++++++++++++++++++++++++++++++            | 75% ~37s          
  |++++++++++++++++++++++++++++++++++++++            | 76% ~36s          
  |+++++++++++++++++++++++++++++++++++++++           | 77% ~34s          
  |+++++++++++++++++++++++++++++++++++++++           | 78% ~33s          
  |++++++++++++++++++++++++++++++++++++++++          | 79% ~31s          
  |++++++++++++++++++++++++++++++++++++++++          | 80% ~30s          
  |+++++++++++++++++++++++++++++++++++++++++         | 81% ~28s          
  |+++++++++++++++++++++++++++++++++++++++++         | 82% ~27s          
  |++++++++++++++++++++++++++++++++++++++++++        | 83% ~25s          
  |++++++++++++++++++++++++++++++++++++++++++        | 84% ~24s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 85% ~22s          
  |+++++++++++++++++++++++++++++++++++++++++++       | 86% ~21s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 87% ~19s          
  |++++++++++++++++++++++++++++++++++++++++++++      | 88% ~18s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 89% ~16s          
  |+++++++++++++++++++++++++++++++++++++++++++++     | 90% ~15s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 91% ~13s          
  |++++++++++++++++++++++++++++++++++++++++++++++    | 92% ~12s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 93% ~10s          
  |+++++++++++++++++++++++++++++++++++++++++++++++   | 94% ~09s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 95% ~07s          
  |++++++++++++++++++++++++++++++++++++++++++++++++  | 96% ~06s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 97% ~04s          
  |+++++++++++++++++++++++++++++++++++++++++++++++++ | 98% ~03s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 99% ~01s          
  |++++++++++++++++++++++++++++++++++++++++++++++++++| 100% elapsed=02m 27s

Save single-cell elements.

```r
saveRDS(AllMB,\AllMB.rds\)

<!-- rnb-source-end -->

<!-- rnb-chunk-end -->


<!-- rnb-text-begin -->



<!-- rnb-text-end -->


<!-- rnb-chunk-begin -->


<!-- rnb-source-begin eyJkYXRhIjoiYGBgclxuYGBgclxuQWxsTUI9cmVhZFJEUyhcXEFsbE1CLnJkc1xcKVxuYGBgXG5gYGAifQ== -->

```r
```r
AllMB=readRDS(\AllMB.rds\)

<!-- rnb-source-end -->

<!-- rnb-chunk-end -->


<!-- rnb-text-begin -->



<!-- rnb-text-end -->


<!-- rnb-chunk-begin -->


<!-- rnb-source-begin eyJkYXRhIjoiYGBgclxuYGBgclxuc2F2ZVJEUyhBbGxNQi5tYXJrZXJzLFxcQWxsTUIubWFya2Vycy5yZHNcXClcbmBgYFxuYGBgIn0= -->

```r
```r
saveRDS(AllMB.markers,\AllMB.markers.rds\)

<!-- rnb-source-end -->

<!-- rnb-chunk-end -->


<!-- rnb-text-begin -->



<!-- rnb-text-end -->


<!-- rnb-chunk-begin -->


<!-- rnb-source-begin eyJkYXRhIjoiYGBgclxuYGBgclxuQWxsTUIubWFya2Vycz1yZWFkUkRTKFxcQWxsTUIubWFya2Vycy5yZHNcXClcbndyaXRlLmNzdihBbGxNQi5tYXJrZXJzLFxcQWxsTUJfbWFya2Vycy5jc3ZcXClcbmBgYFxuYGBgIn0= -->

```r
```r
AllMB.markers=readRDS(\AllMB.markers.rds\)
write.csv(AllMB.markers,\AllMB_markers.csv\)

<!-- rnb-source-end -->

<!-- rnb-chunk-end -->


<!-- rnb-text-begin -->



<!-- rnb-text-end -->


<!-- rnb-chunk-begin -->


<!-- rnb-source-begin eyJkYXRhIjoiYGBgclxudW5pcXVlKEFsbE1CLm1hcmtlcnMkY2x1c3RlcilcbmBgYCJ9 -->

```r
unique(AllMB.markers$cluster)
Error in unique(AllMB.markers$cluster) : object 'AllMB.markers' not found

Top marker genes for each clusters:

AllMB.markers %>% group_by(cluster) %>% top_n(n = 2, wt = avg_logFC)
write.table(AllMB.markers, file = "AllMarkers.txt", col.names = TRUE, sep = "\t", quote = FALSE)
top10Markers <- AllMB.markers %>% group_by(cluster) %>% top_n(n = 10, wt = avg_logFC)
write.table(top10Markers, file = "top10Markers.txt", col.names = TRUE, sep = "\t", quote = FALSE)

Heatmap for some marker genes:

features <- unique(top10Markers$gene)
DoHeatmap(AllMB, features = features, size = 2, draw.lines = FALSE, angle = 45,
          hjust = 0.2) + theme(axis.text.y = element_text(size = 5))
VlnPlot(AllMB, features = c("SLC32A1", "GAD1", "GAD2", "SLC17A6", "LPL", "OTX2", "ADCYAP1", "GRP", "VIP"),
        ncol = 1)

Neuron = ENO2, RBFOX3 Glutamatergic neurons = SLC17A6, SLC17A7 GABAergic neurons = SLC32A1, GAD1, GAD2 Dopaminergic neurons = TH, SLC6A3, SCL18A2 Astrocytes = AQP4, GFAP Oligodendrocytes = PLP1, MBP OPCs = VCAN, BCAN, Microglia = CX3CR1, P2RY12 Endothelial cells = FLT1, CLDN5

Plot these genes in the cluster plot:

FeaturePlot(AllMB, features = c("ENO2", "RBFOX3","SLC17A6", "SLC17A7","AQP4", "GFAP"))

FeaturePlot(AllMB, features = c("SLC17A6", "SLC17A7"))

FeaturePlot(AllMB, features = c("AQP4", "GFAP"))


FeaturePlot(AllMB, features = c("SLC32A1", "GAD1","GAD2","TH", "SLC6A3","SCL8A2"))
The following requested variables were not found: SCL8A2

FeaturePlot(AllMB, features = c("TH", "SLC6A3","SCL18A2"))
The following requested variables were not found: SCL18A2

FeaturePlot(AllMB, features = c("PLP1", "MBP","VCAN", "BCAN","CX3CR1", "P2RY12"))

FeaturePlot(AllMB, features = c("VCAN", "BCAN"))

FeaturePlot(AllMB, features = c("CX3CR1", "P2RY12"))

FeaturePlot(AllMB, features = c("PLP1", "MBP","VCAN", "BCAN","FLT1", "CLDN5"))

FeaturePlot(AllMB, features = c("FLT1", "CLDN5"))

Find cell-types by plotting marker genes.

VlnPlot(AllMB, features = c("ENO2"),pt.size = 0)

VlnPlot(AllMB, features = c("RBFOX3"),pt.size = 0)

VlnPlot(AllMB, features = c("SLC17A6"),pt.size = 0)

VlnPlot(AllMB, features = c("SLC17A7"),pt.size = 0)

VlnPlot(AllMB, features = c("SLC32A1"),pt.size = 0)

VlnPlot(AllMB, features = c("GAD1"),pt.size = 0)

VlnPlot(AllMB, features = c("GAD2"),pt.size = 0)

VlnPlot(AllMB, features = c("TH"),pt.size = 0)

VlnPlot(AllMB, features = c("SLC6A3"),pt.size = 0)

VlnPlot(AllMB, features = c("SLC18A2"),pt.size = 0)

VlnPlot(AllMB, features = c("AQP4"),pt.size = 0)

VlnPlot(AllMB, features = c("GFAP"),pt.size = 0)

VlnPlot(AllMB, features = c("PLP1"),pt.size = 0)

VlnPlot(AllMB, features = c("MBP"),pt.size = 0)

VlnPlot(AllMB, features = c("VCAN"),pt.size = 0)

VlnPlot(AllMB, features = c("BCAN"),pt.size = 0)

VlnPlot(AllMB, features = c("CX3CR1"),pt.size = 0)

VlnPlot(AllMB, features = c("P2RY12"),pt.size = 0)

VlnPlot(AllMB, features = c("FLT1"),pt.size = 0)

VlnPlot(AllMB, features = c("CLDN5"),pt.size = 0)

VlnPlot(AllMB, features = c("ENO2",
                            "TH",
                            "SLC6A3",
                            "SLC18A2",
                            "SLC17A6",
                            "SLC17A7",
                            "SLC32A1",
                            "GAD1",
                            "GAD2",
                            "AQP4",
                            "GFAP",
                            "PLP1",
                            "OLIG1",
                            "VCAN",
                            "CX3CR1",
                            "P2RY12",
                            "FLT1"),
        pt.size =0,ncol = 1)

Find mean values of these genes across clusters.

AverageExpression(AllMB, features = c("ENO2",
                                      "TH",
                                      "SLC6A3",
                                      "SLC18A2",
                                      "SLC17A6",
                                      "SLC17A7",
                                      "SLC32A1",
                                      "GAD1",
                                      "GAD2",
                                      "AQP4",
                                      "GFAP",
                                      "PLP1",
                                      "OLIG1",
                                      "VCAN",
                                      "CX3CR1",
                                      "P2RY12",
                                      "FLT1"),use.counts=TRUE)
'use.counts' is a deprecated argument, please use the 'slot' argument insteadFinished averaging RNA for cluster 0
Finished averaging RNA for cluster 1
Finished averaging RNA for cluster 2
Finished averaging RNA for cluster 3
Finished averaging RNA for cluster 4
Finished averaging RNA for cluster 5
Finished averaging RNA for cluster 6
Finished averaging RNA for cluster 7
Finished averaging RNA for cluster 8
Finished averaging RNA for cluster 9
Finished averaging RNA for cluster 10
Finished averaging RNA for cluster 11
Finished averaging RNA for cluster 12
Finished averaging RNA for cluster 13
Finished averaging RNA for cluster 14
Finished averaging RNA for cluster 15
Finished averaging RNA for cluster 16
$RNA
NA

Other form of ploting genes across clusters:

RidgePlot(AllMB, features=c("ENO2"))

RidgePlot(AllMB, features=c("TH"))

RidgePlot(AllMB, features=c("SLC6A3"))

RidgePlot(AllMB, features=c("SLC18A2"))

RidgePlot(AllMB, features=c("SLC17A6"))

RidgePlot(AllMB, features=c("GAD2"))

Assigning cell type identity to clusters:

AllMB <- RenameIdents(AllMB, `0` = "Oligodendrocytes", `1` = "Oligodendrocytes", `2` = "Astrocytes",
                      `3` = "Oligodendrocytes", `4` = "OPCs", `5` = "Glu_GABA neurons",
                      `6` = "Microglia", `7` = "Oligodendrocytes", `8` = "Endothelial cells",`9` = "Glu_neurons",
                      `10` = "Endothelial cells", `11` = "dopamine_neuron_potentially_DA2",`12` = "novel_Cluster12",
                      `13` = "novel_Cluster13",`14` = "novel_Cluster14",
                      `15` = "GABA_neurons", `16`="dopamine_neuron_potentially_DA1")

Now let’s plot cells with the assigned celltypes:

DimPlot(AllMB, label = TRUE, repel = TRUE, pt.size = 1)

DimPlot(AllMB, label = TRUE, repel = TRUE, pt.size = 1, split.by = "case", label.size = 2,
        ncol = 1) + NoLegend()

Saving the singcell objects:

saveRDS(AllMB,"AllMB.rds")
AllMB=readRDS("AllMB.rds")
saveRDS(AllMB.markers,"AllMB.markers.rds")
AllMB.markers=readRDS("AllMB.markers.rds")

Check the cell counts of each cluster

table(Idents(AllMB))

               Oligodendrocytes                      Astrocytes 
                           8308                            1832 
                           OPCs                Glu_GABA neurons 
                           1129                            1062 
                      Microglia               Endothelial cells 
                            949                             910 
                    Glu_neurons dopamine_neuron_potentially_DA2 
                            306                             162 
                novel_Cluster12                 novel_Cluster13 
                            123                              99 
                novel_Cluster14                    GABA_neurons 
                             82                              41 
dopamine_neuron_potentially_DA1 
                             35 

How many cells in each group?

table(AllMB$case)

   HC    PD 
 4842 10196 

How many cells in each cluster of each group?

table(Idents(AllMB), AllMB$case)
                                 
                                    HC   PD
  Oligodendrocytes                2300 6008
  Astrocytes                       516 1316
  OPCs                             319  810
  Glu_GABA neurons                 521  541
  Microglia                        225  724
  Endothelial cells                435  475
  Glu_neurons                      247   59
  dopamine_neuron_potentially_DA2  113   49
  novel_Cluster12                   51   72
  novel_Cluster13                   40   59
  novel_Cluster14                   46   36
  GABA_neurons                      16   25
  dopamine_neuron_potentially_DA1   13   22

What proportion of cells are in each cluster of each group?

prop.table(table(Idents(AllMB), AllMB$case), margin = 2)
                                 
                                           HC          PD
  Oligodendrocytes                0.475010326 0.589250687
  Astrocytes                      0.106567534 0.129070224
  OPCs                            0.065881867 0.079442919
  Glu_GABA neurons                0.107600165 0.053060024
  Microglia                       0.046468401 0.071008239
  Endothelial cells               0.089838910 0.046586897
  Glu_neurons                     0.051011979 0.005786583
  dopamine_neuron_potentially_DA2 0.023337464 0.004805806
  novel_Cluster12                 0.010532838 0.007061593
  novel_Cluster13                 0.008261049 0.005786583
  novel_Cluster14                 0.009500207 0.003530796
  GABA_neurons                    0.003304420 0.002451942
  dopamine_neuron_potentially_DA1 0.002684841 0.002157709
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKTG9hZGluZyBuZWNlc3NhcnkgcGFja2FnZXM6CgpgYGB7cn0KbGlicmFyeShTZXVyYXQpCmxpYnJhcnkoY293cGxvdCkKbGlicmFyeShnZ3Bsb3QyKQpsaWJyYXJ5KGdnc2NpKQpsaWJyYXJ5KGRwbHlyKQpsaWJyYXJ5KHBzeWNoKQpsaWJyYXJ5KHBoZWF0bWFwKQpsaWJyYXJ5KGhhcm1vbnkpCiNsaWJyYXJ5KGNsdXN0ZXJQcm9maWxlcikKbGlicmFyeShvcmcuSHMuZWcuZGIpCmxpYnJhcnkoRE9TRSkKbGlicmFyeShHT1NlbVNpbSkKbGlicmFyeShlbnJpY2hwbG90KQpgYGAKCgpMb2FkIHRoZSBCUkktMzE4LCBCUkktMzE5LCBCUkktMzIwLCBCUkktMzIxLCBCMDA4NSwgSDAzMjEsIEgxMDA5LCBIMTExOCAgc2luZ2xlLWNlbGwgZGF0YS4KYGBge3J9CkJSSTMxOC5kYXRhIDwtIFJlYWQxMFgoZGF0YS5kaXIgPSAiLi9CUkkzMTgiKQpCUkkzMTkuZGF0YSA8LSBSZWFkMTBYKGRhdGEuZGlyID0gIi4vQlJJMzE5IikKQlJJMzIwLmRhdGEgPC0gUmVhZDEwWChkYXRhLmRpciA9ICIuL0JSSTMyMCIpCkJSSTMyMS5kYXRhIDwtIFJlYWQxMFgoZGF0YS5kaXIgPSAiLi9CUkkzMjEiKQpCMDA4NS5kYXRhIDwtIFJlYWQxMFgoZGF0YS5kaXIgPSAiLi9CMDA4NSIpCkgwMzIxLmRhdGEgPC0gUmVhZDEwWChkYXRhLmRpciA9ICIuL0gwMzIxIikKSDEwMDkuZGF0YSA8LSBSZWFkMTBYKGRhdGEuZGlyID0gIi4vSDEwMDkiKQpIMTExOC5kYXRhIDwtIFJlYWQxMFgoZGF0YS5kaXIgPSAiLi9IMTExOCIpCmBgYAoKRmlsdGVyaW5nIGFsbCBzaW5nbGUgY2VsbCBkYXRhIHRvIGhhdmUgc2FtZSBzZXQgb2YgZ2VuZXMuCmBgYHtyfQpnZW5lczE8LXJvd25hbWVzKEJSSTMxOC5kYXRhKQpnZW5lczI8LXJvd25hbWVzKEIwMDg1LmRhdGEpCmdlbmVzX2NvbW1vbjwtaW50ZXJzZWN0KGdlbmVzMSxnZW5lczIpCkJSSTMxOC5kYXRhPC1CUkkzMTguZGF0YVtyb3duYW1lcyhCUkkzMTguZGF0YSklaW4lZ2VuZXNfY29tbW9uLF0KQlJJMzE5LmRhdGE8LUJSSTMxOS5kYXRhW3Jvd25hbWVzKEJSSTMxOS5kYXRhKSVpbiVnZW5lc19jb21tb24sXQpCUkkzMjAuZGF0YTwtQlJJMzIwLmRhdGFbcm93bmFtZXMoQlJJMzIwLmRhdGEpJWluJWdlbmVzX2NvbW1vbixdCkJSSTMyMS5kYXRhPC1CUkkzMjEuZGF0YVtyb3duYW1lcyhCUkkzMjEuZGF0YSklaW4lZ2VuZXNfY29tbW9uLF0KQjAwODUuZGF0YTwtQjAwODUuZGF0YVtyb3duYW1lcyhCMDA4NS5kYXRhKSVpbiVnZW5lc19jb21tb24sXQpIMDMyMS5kYXRhPC1IMDMyMS5kYXRhW3Jvd25hbWVzKEgwMzIxLmRhdGEpJWluJWdlbmVzX2NvbW1vbixdCkgxMDA5LmRhdGE8LUgxMDA5LmRhdGFbcm93bmFtZXMoSDEwMDkuZGF0YSklaW4lZ2VuZXNfY29tbW9uLF0KSDExMTguZGF0YTwtSDExMTguZGF0YVtyb3duYW1lcyhIMTExOC5kYXRhKSVpbiVnZW5lc19jb21tb24sXQpgYGAKCkxldHMgc2VlIHdoYXQgaXMgdGhlIGdlbmUgZXhwcmVzc2lvbiBkYXRhIGRpbWVuc2lvbiBpcyA6IApgYGB7cn0KZGltKEJSSTMxOC5kYXRhKQpkaW0oQlJJMzE5LmRhdGEpCmRpbShCUkkzMjAuZGF0YSkKZGltKEJSSTMyMS5kYXRhKQpkaW0oQjAwODUuZGF0YSkKZGltKEgwMzIxLmRhdGEpCmRpbShIMTAwOS5kYXRhKQpkaW0oSDExMTguZGF0YSkKYGBgCgpJbml0aWFsaXplIHRoZSBTZXVyYXQgb2JqZWN0IHdpdGggdGhlIHJhdyAobm9uLW5vcm1hbGl6ZWQgZGF0YSkKUm93cyBhcmUgR2VuZXMgYW5kIGNvbHVtbnMgYXJlIHNhbXBsZXMuIApgYGB7cn0KQWxsTUIgPC0gQ3JlYXRlU2V1cmF0T2JqZWN0KGNvdW50cyA9IGNiaW5kKEJSSTMxOC5kYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQlJJMzE5LmRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCUkkzMjAuZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJSSTMyMS5kYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQjAwODUuZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEgwMzIxLmRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIMTAwOS5kYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSDExMTguZGF0YSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0ID0gIk1pZGJyYWluIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbi5jZWxscyA9IDMpCmBgYAoKTGV0J3Mgbm93IGFubm90YXRlIGNvbHVtbnMgKGNlbGxzKSB3aXRoIG1ldGEgZGF0YSA6CgoxKSBzYW1wbGUgSUQKYGBge3J9CkFsbE1CQG1ldGEuZGF0YSRzYW1wbGVfSUQgPC0gYyhyZXAoIkJSSTMxOCIsIG5jb2woQlJJMzE4LmRhdGEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgiQlJJMzE5IiwgbmNvbChCUkkzMTkuZGF0YSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwKCJCUkkzMjAiLCBuY29sKEJSSTMyMC5kYXRhKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXAoIkJSSTMyMSIsIG5jb2woQlJJMzIxLmRhdGEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgiQjAwODUiLCBuY29sKEIwMDg1LmRhdGEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgiSDAzMjEiLCBuY29sKEgwMzIxLmRhdGEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgiSDEwMDkiLCBuY29sKEgxMDA5LmRhdGEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgiSDExMTgiLCBuY29sKEgxMTE4LmRhdGEpKQopCmBgYAoKMikgY2FzZSA6IEhlYWx0aHkgQ29udHJvbCAoSEMpIG9yIFBhcmtpbnNvbiBEaXNlYXNlIChQRCkKYGBge3J9CkFsbE1CQG1ldGEuZGF0YSRjYXNlIDwtIGMocmVwKCJQRCIsIG5jb2woQlJJMzE4LmRhdGEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICByZXAoIkhDIiwgbmNvbChCUkkzMTkuZGF0YSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgiUEQiLCBuY29sKEJSSTMyMC5kYXRhKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwKCJIQyIsIG5jb2woQlJJMzIxLmRhdGEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICByZXAoIlBEIiwgbmNvbChCMDA4NS5kYXRhKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwKCJIQyIsIG5jb2woSDAzMjEuZGF0YSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgiSEMiLCBuY29sKEgxMDA5LmRhdGEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICByZXAoIlBEIiwgbmNvbChIMTExOC5kYXRhKSkKKQpgYGAKCjMpIEV4cGVybWllbnQgKGluIHRoaXMgY2FzZSBleHBlcmltZW50IGFuZCBzYW1wbGVfSUQgYXJlIGlkZW50aWNhbC4pCmBgYHtyfQpBbGxNQkBtZXRhLmRhdGEkZXhwZXJpbWVudCA8LSBjKHJlcCgiQlJJMzE4IiwgbmNvbChCUkkzMTguZGF0YSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgiQlJJMzE5IiwgbmNvbChCUkkzMTkuZGF0YSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgiQlJJMzIwIiwgbmNvbChCUkkzMjAuZGF0YSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgiQlJJMzIxIiwgbmNvbChCUkkzMjEuZGF0YSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgiQjAwODUiLCBuY29sKEIwMDg1LmRhdGEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXAoIkgwMzIxIiwgbmNvbChIMDMyMS5kYXRhKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwKCJIMTAwOSIsIG5jb2woSDEwMDkuZGF0YSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgiSDExMTgiLCBuY29sKEgxMTE4LmRhdGEpKQopCmBgYAogCjQpIE9uZSBWUyBhbGwgYW5ub3JhdGlvbnMgOgpCUkkzMTggdnMgcmVzdApgYGB7cn0KQWxsTUJAbWV0YS5kYXRhJEJSSTMxOF92c19yZXN0IDwtIGMocmVwKCJCUkkzMTgiLCBuY29sKEJSSTMxOC5kYXRhKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgicmVzdCIsIG5jb2woQlJJMzE5LmRhdGEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwKCJyZXN0IiwgbmNvbChCUkkzMjAuZGF0YSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXAoInJlc3QiLCBuY29sKEJSSTMyMS5kYXRhKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgicmVzdCIsIG5jb2woQjAwODUuZGF0YSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXAoInJlc3QiLCBuY29sKEgwMzIxLmRhdGEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwKCJyZXN0IiwgbmNvbChIMTAwOS5kYXRhKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgicmVzdCIsIG5jb2woSDExMTguZGF0YSkpKQpgYGAKCkJSSTMxOSB2cyByZXN0CgpgYGB7cn0KQWxsTUJAbWV0YS5kYXRhJEJSSTMxOV92c19yZXN0IDwtIGMocmVwKCJyZXN0IiwgbmNvbChCUkkzMTguZGF0YSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXAoIkJSSTMxOSIsIG5jb2woQlJJMzE5LmRhdGEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwKCJyZXN0IiwgbmNvbChCUkkzMjAuZGF0YSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXAoInJlc3QiLCBuY29sKEJSSTMyMS5kYXRhKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgicmVzdCIsIG5jb2woQjAwODUuZGF0YSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXAoInJlc3QiLCBuY29sKEgwMzIxLmRhdGEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwKCJyZXN0IiwgbmNvbChIMTAwOS5kYXRhKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgicmVzdCIsIG5jb2woSDExMTguZGF0YSkpCikKYGBgCgpCUkkzMjAgdnMgcmVzdApgYGB7cn0KQWxsTUJAbWV0YS5kYXRhJEJSSTMyMF92c19yZXN0IDwtIGMocmVwKCJyZXN0IiwgbmNvbChCUkkzMTguZGF0YSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXAoInJlc3QiLCBuY29sKEJSSTMxOS5kYXRhKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgiQlJJMzIwIiwgbmNvbChCUkkzMjAuZGF0YSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXAoInJlc3QiLCBuY29sKEJSSTMyMS5kYXRhKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgicmVzdCIsIG5jb2woQjAwODUuZGF0YSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXAoInJlc3QiLCBuY29sKEgwMzIxLmRhdGEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwKCJyZXN0IiwgbmNvbChIMTAwOS5kYXRhKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgicmVzdCIsIG5jb2woSDExMTguZGF0YSkpCikKYGBgCgpCUkkzMjEgdnMgcmVzdApgYGB7cn0KQWxsTUJAbWV0YS5kYXRhJEJSSTMyMV92c19yZXN0IDwtIGMocmVwKCJyZXN0IiwgbmNvbChCUkkzMTguZGF0YSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXAoInJlc3QiLCBuY29sKEJSSTMxOS5kYXRhKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgicmVzdCIsIG5jb2woQlJJMzIwLmRhdGEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwKCJCUkkzMjEiLCBuY29sKEJSSTMyMS5kYXRhKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgicmVzdCIsIG5jb2woQjAwODUuZGF0YSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXAoInJlc3QiLCBuY29sKEgwMzIxLmRhdGEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwKCJyZXN0IiwgbmNvbChIMTAwOS5kYXRhKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgicmVzdCIsIG5jb2woSDExMTguZGF0YSkpCikKYGBgCgpCMDA4NSB2cyByZXN0CmBgYHtyfQpBbGxNQkBtZXRhLmRhdGEkQjAwODVfdnNfcmVzdCA8LSBjKHJlcCgicmVzdCIsIG5jb2woQlJJMzE4LmRhdGEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXAoInJlc3QiLCBuY29sKEJSSTMxOS5kYXRhKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwKCJyZXN0IiwgbmNvbChCUkkzMjAuZGF0YSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgicmVzdCIsIG5jb2woQlJJMzIxLmRhdGEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXAoIkIwMDg1IiwgbmNvbChCMDA4NS5kYXRhKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwKCJyZXN0IiwgbmNvbChIMDMyMS5kYXRhKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwKCJyZXN0IiwgbmNvbChIMTAwOS5kYXRhKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwKCJyZXN0IiwgbmNvbChIMTExOC5kYXRhKSkKKQpgYGAKCkgwMzIxIHZzIGFsbApgYGB7cn0KQWxsTUJAbWV0YS5kYXRhJEgwMzIxX3ZzX3Jlc3QgPC0gYyhyZXAoInJlc3QiLCBuY29sKEJSSTMxOC5kYXRhKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwKCJyZXN0IiwgbmNvbChCUkkzMTkuZGF0YSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgicmVzdCIsIG5jb2woQlJJMzIwLmRhdGEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXAoInJlc3QiLCBuY29sKEJSSTMyMS5kYXRhKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwKCJyZXN0IiwgbmNvbChCMDA4NS5kYXRhKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwKCJIMDMyMSIsIG5jb2woSDAzMjEuZGF0YSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgicmVzdCIsIG5jb2woSDEwMDkuZGF0YSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgicmVzdCIsIG5jb2woSDExMTguZGF0YSkpCikKYGBgCgpIMTAwOSB2cyBhbGwKYGBge3J9CkFsbE1CQG1ldGEuZGF0YSRIMTAwOV92c19yZXN0IDwtIGMocmVwKCJyZXN0IiwgbmNvbChCUkkzMTguZGF0YSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgicmVzdCIsIG5jb2woQlJJMzE5LmRhdGEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXAoInJlc3QiLCBuY29sKEJSSTMyMC5kYXRhKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwKCJyZXN0IiwgbmNvbChCUkkzMjEuZGF0YSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgicmVzdCIsIG5jb2woQjAwODUuZGF0YSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgicmVzdCIsIG5jb2woSDAzMjEuZGF0YSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgiSDEwMDkiLCBuY29sKEgxMDA5LmRhdGEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXAoInJlc3QiLCBuY29sKEgxMTE4LmRhdGEpKQopCmBgYAoKSDExMTggdnMgYWxsCmBgYHtyfQpBbGxNQkBtZXRhLmRhdGEkSDExMThfdnNfcmVzdCA8LSBjKHJlcCgicmVzdCIsIG5jb2woQlJJMzE4LmRhdGEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXAoInJlc3QiLCBuY29sKEJSSTMxOS5kYXRhKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwKCJyZXN0IiwgbmNvbChCUkkzMjAuZGF0YSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcCgicmVzdCIsIG5jb2woQlJJMzIxLmRhdGEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXAoInJlc3QiLCBuY29sKEIwMDg1LmRhdGEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXAoInJlc3QiLCBuY29sKEgwMzIxLmRhdGEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXAoInJlc3QiLCBuY29sKEgxMDA5LmRhdGEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXAoIkgxMTE4IiwgbmNvbChIMTExOC5kYXRhKSkKKQpgYGAKCk5vdyBsZXQncyBzZWUgdGhlIGNlbGwgdGhlIGNvdW50cyBmb3IgZWFjaCBncm91cDoKYGBge3J9CnRhYmxlKEFsbE1CJHNhbXBsZV9JRCkKdGFibGUoQWxsTUIkY2FzZSkKdGFibGUoQWxsTUIkZXhwZXJpbWVudCkKYGBgCgoKIFF1YWxpdHkgQ2hlY2tpbmcgOiAKCiBTZXVyYXQgYWxsb3dzIHlvdSB0byBlYXNpbHkgZXhwbG9yZSBRQyBtZXRyaWNzIGFuZCBmaWx0ZXIgY2VsbHMgYmFzZWQgb24gYW55IHVzZXItZGVmaW5lZCBjcml0ZXJpYS4KIEEgZmV3IFFDIG1ldHJpY3MgY29tbW9ubHkgdXNlZCBieSB0aGUgY29tbXVuaXR5IGluY2x1ZGUgOiAKIFRoZSBudW1iZXIgb2YgdW5pcXVlIGdlbmVzIGRldGVjdGVkIGluIGVhY2ggY2VsbC4KIExvdy1xdWFsaXR5IGNlbGxzIG9yIGVtcHR5IGRyb3BsZXRzIHdpbGwgb2Z0ZW4gaGF2ZSB2ZXJ5IGZldyBnZW5lcwogQ2VsbCBkb3VibGV0cyBvciBtdWx0aXBsZXRzIG1heSBleGhpYml0IGFuIGFiZXJyYW50bHkgaGlnaCBnZW5lIGNvdW50CiBTaW1pbGFybHksIHRoZSB0b3RhbCBudW1iZXIgb2YgbW9sZWN1bGVzIGRldGVjdGVkIHdpdGhpbiBhIGNlbGwgKGNvcnJlbGF0ZXMgc3Ryb25nbHkgd2l0aCB1bmlxdWUgZ2VuZXMpCiBUaGUgcGVyY2VudGFnZSBvZiByZWFkcyB0aGF0IG1hcCB0byB0aGUgbWl0b2Nob25kcmlhbCBnZW5vbWUKIExvdy1xdWFsaXR5IC8gZHlpbmcgY2VsbHMgb2Z0ZW4gZXhoaWJpdCBleHRlbnNpdmUgbWl0b2Nob25kcmlhbCBjb250YW1pbmF0aW9uCiBXZSBjYWxjdWxhdGUgbWl0b2Nob25kcmlhbCBRQyBtZXRyaWNzIHdpdGggdGhlIFBlcmNlbnRhZ2VGZWF0dXJlU2V0KCkgZnVuY3Rpb24sIHdoaWNoIGNhbGN1bGF0ZXMgdGhlIHBlcmNlbnRhZ2Ugb2YgY291bnRzIG9yaWdpbmF0aW5nIGZyb20gYSBzZXQgb2YgZmVhdHVyZXMKIFdlIHVzZSB0aGUgc2V0IG9mIGFsbCBnZW5lcyBzdGFydGluZyB3aXRoIE1ULSBhcyBhIHNldCBvZiBtaXRvY2hvbmRyaWFsIGdlbmVzCgpgYGB7cn0KQWxsTUJbWyJwZXJjZW50Lm10Il1dIDwtIFBlcmNlbnRhZ2VGZWF0dXJlU2V0KEFsbE1CLCBwYXR0ZXJuID0gIl5NVC0iKQpWbG5QbG90KEFsbE1CLCBmZWF0dXJlcyA9IGMoIm5GZWF0dXJlX1JOQSIsICJuQ291bnRfUk5BIiwgInBlcmNlbnQubXQiKSwgbmNvbCA9IDMpCmBgYAogQW4gb2JqZWN0IG9mIGNsYXNzIFNldXJhdCAKIDI1MzgxIGZlYXR1cmVzIGFjcm9zcyA2NTQ5IHNhbXBsZXMgd2l0aGluIDEgYXNzYXkgCiBBY3RpdmUgYXNzYXk6IFJOQSAoMjUzODEgZmVhdHVyZXMpCgpGaWx0ZXJpbmcgbG93IHF1YWxpdHkgY2VsbHM6CmBgYHtyfQpBbGxNQiA8LSBzdWJzZXQoQWxsTUIsIHN1YnNldCA9IG5GZWF0dXJlX1JOQSA+IDIwMCAmIHBlcmNlbnQubXQgPCA1KQpgYGAKCkxvZyBOb3JtYWxpemluZyBkYXRhOiAKYGBge3J9CkFsbE1CIDwtIE5vcm1hbGl6ZURhdGEoQWxsTUIsIG5vcm1hbGl6YXRpb24ubWV0aG9kID0gIkxvZ05vcm1hbGl6ZSIsIHNjYWxlLmZhY3RvciA9IDEwMDAwKQpBbGxNQiA8LSBGaW5kVmFyaWFibGVGZWF0dXJlcyhBbGxNQiwgc2VsZWN0aW9uLm1ldGhvZCA9ICJ2c3QiLCBuZmVhdHVyZXMgPSAyMDAwKQpgYGAKClJ1biB0aGUgc3RhbmRhcmQgd29ya2Zsb3cgZm9yIHZpc3VhbGl6YXRpb24gYW5kIGNsdXN0ZXJpbmcgOgoKc2F2ZSBsaXN0IG9mIGFsbCBnZW5lcwpgYGB7cn0KYWxsLmdlbmVzIDwtIHJvd25hbWVzKEFsbE1CKQpgYGAKY2VudGVyIGFuZCBzY2FsZSBkYXRhCmBgYHtyfQpBbGxNQiA8LSBTY2FsZURhdGEoQWxsTUIsIGZlYXR1cmVzID0gYWxsLmdlbmVzLCB2ZXJib3NlID0gRkFMU0UpCmBgYAoKZmluaW5nIHRoZSB0b3AgMzAgcHJpbmNpcGFsIGNvbXBvbmVuZXRzIGZvciBjZWxscwpgYGB7cn0KQWxsTUIgPC0gUnVuUENBKEFsbE1CLCBucGNzID0gMzAsIHZlcmJvc2UgPSBGQUxTRSkKYGBgCgpzZWUgY29udHJpYnV0aW9uIG9mIGdlbmVzIHRvIGNvbnN0cnVjdCBlYWNoIG9mIHRoZXNlIHByaW5jaXBhbCBjb21wb25lbnRzLgpgYGB7cn0KVml6RGltTG9hZGluZ3MoQWxsTUIsIGRpbXMgPSAxOjIsIHJlZHVjdGlvbiA9ICJwY2EiKQpgYGAKCnBsb3QgY2VsbHMgaW4gdGhlIGZpcnN0IHR3byBwcmluY2lwYWwgY29tcG9uZW50cyBjb2xvcmVkIGJ5IGNhc2U6IApgYGB7cn0KRGltUGxvdChvYmplY3QgPSBBbGxNQiwgcmVkdWN0aW9uID0gInBjYSIsIHB0LnNpemUgPSAuMSwgZ3JvdXAuYnkgPSAiY2FzZSIpCmBgYAoKQ29vcmRpbmF0ZSBvZiBjZWxscyBpbiBQQyAxIGNoYXJhY3Rlcml6ZWQgYnkgY2FzZTogCmBgYHtyfQpWbG5QbG90KG9iamVjdCA9IEFsbE1CLCBmZWF0dXJlcyA9ICJQQ18xIiwgZ3JvdXAuYnkgPSAiY2FzZSIsICBwdC5zaXplID0gLjEpCmBgYApGZWF0dXJlIFNjYXR0ZXIKYGBge3J9CnBsb3QxIDwtIEZlYXR1cmVTY2F0dGVyKEFsbE1CLCBmZWF0dXJlMSA9ICJuQ291bnRfUk5BIiwgZmVhdHVyZTIgPSAicGVyY2VudC5tdCIpCmBgYAoKYGBge3J9CnBsb3QyIDwtIEZlYXR1cmVTY2F0dGVyKEFsbE1CLCBmZWF0dXJlMSA9ICJuQ291bnRfUk5BIiwgZmVhdHVyZTIgPSAibkZlYXR1cmVfUk5BIikKYGBgCgpgYGB7cn0KQ29tYmluZVBsb3RzKHBsb3RzID0gbGlzdChwbG90MSwgcGxvdDIpKQpgYGAKUnVuIEhhcm1vbnkKYGBge3J9CkFsbE1CIDwtIFJ1bkhhcm1vbnkoQWxsTUIsIGdyb3VwLmJ5LnZhcnMgPSAiY2FzZSIsIHBsb3RfY29udmVyZ2VuY2UgPSBUUlVFKQpgYGAKY2VsbHMgaW4gaGFybW9ueSBheGlzCmBgYHtyfQpoYXJtb255X2VtYmVkZGluZ3MgPC0gRW1iZWRkaW5ncyhBbGxNQiwgJ2hhcm1vbnknKQpoYXJtb255X2VtYmVkZGluZ3NbMTo1LCAxOjVdCmBgYAoKY2VsbHMgaW4gaGFybW9ueSBheGlzCmBgYHtyfQpEaW1QbG90KG9iamVjdCA9IEFsbE1CLCByZWR1Y3Rpb24gPSAiaGFybW9ueSIsIHB0LnNpemUgPSAuMSwgZ3JvdXAuYnkgPSAiY2FzZSIpCmBgYApjZWxscyBpbiBoYXJtb255IDEgYXhpcwpgYGB7cn0KVmxuUGxvdChvYmplY3QgPSBBbGxNQiwgZmVhdHVyZXMgPSAiaGFybW9ueV8xIiwgZ3JvdXAuYnkgPSAiY2FzZSIsICBwdC5zaXplID0gLjEpCmBgYAoKIEFuIG9iamVjdCBvZiBjbGFzcyBTZXVyYXQgCiAyNTM4MSBmZWF0dXJlcyBhY3Jvc3MgNjU0OSBzYW1wbGVzIHdpdGhpbiAxIGFzc2F5IAogQWN0aXZlIGFzc2F5OiBSTkEgKDI1MzgxIGZlYXR1cmVzKQogMiBkaW1lbnNpb25hbCByZWR1Y3Rpb25zIGNhbGN1bGF0ZWQ6IHBjYSwgaGFybW9ueQoKRmluZGluZyBDbHVzdGVycyBvZiBjZWxsczoKYGBge3J9CkFsbE1CIDwtIEZpbmROZWlnaGJvcnMoQWxsTUIsIHJlZHVjdGlvbiA9ICJoYXJtb255IiwgZGltcyA9IDE6MjApCkFsbE1CIDwtIEZpbmRDbHVzdGVycyhBbGxNQiwgcmVzb2x1dGlvbiA9IDAuNSkKYGBgCgpydW4gVW1hcCBiYXNlZCBvbiB0b3AgMjAgaGFybW9ueSBheGlzOiAKCmBgYHtyfQpBbGxNQiA8LSBSdW5VTUFQKEFsbE1CLCByZWR1Y3Rpb24gPSAiaGFybW9ueSIsIGRpbXMgPSAxOjIwKQpgYGAKCnJ1biB0c25lIGJhc2VkIG9uIHRvcCAyMCBoYXJtb255IGF4aXM6IAoKYGBge3J9CkFsbE1CIDwtIFJ1blRTTkUoQWxsTUIsIHJlZHVjdGlvbiA9ICJoYXJtb255IiwgZGltcyA9IDE6MjApCmBgYAoKcGxvdCB1bWFwOiAKYGBge3J9CkRpbVBsb3QoQWxsTUIsIHJlZHVjdGlvbiA9ICJ1bWFwIiwgbGFiZWwgPSBUUlVFLHB0LnNpemUgPSAwLjAxKQpgYGAKCmBgYHtyfQpEaW1QbG90KEFsbE1CLCByZWR1Y3Rpb24gPSAidW1hcCIsIGdyb3VwLmJ5ID0gImNhc2UiLHB0LnNpemUgPSAwLjEpCmBgYAoKYGBge3J9CkRpbVBsb3QoQWxsTUIsIHJlZHVjdGlvbiA9ICJ1bWFwIiwgZ3JvdXAuYnkgPSAiZXhwZXJpbWVudCIscHQuc2l6ZSA9IDAuMSkKYGBgCgpgYGB7cn0KRGltUGxvdChBbGxNQiwgcmVkdWN0aW9uID0gInRzbmUiLCBncm91cC5ieSA9ICJCUkkzMThfdnNfcmVzdCIpCkRpbVBsb3QoQWxsTUIsIHJlZHVjdGlvbiA9ICJ0c25lIiwgZ3JvdXAuYnkgPSAiQlJJMzE5X3ZzX3Jlc3QiKQpEaW1QbG90KEFsbE1CLCByZWR1Y3Rpb24gPSAidHNuZSIsIGdyb3VwLmJ5ID0gIkJSSTMyMF92c19yZXN0IikKRGltUGxvdChBbGxNQiwgcmVkdWN0aW9uID0gInRzbmUiLCBncm91cC5ieSA9ICJCUkkzMjFfdnNfcmVzdCIpCkRpbVBsb3QoQWxsTUIsIHJlZHVjdGlvbiA9ICJ0c25lIiwgZ3JvdXAuYnkgPSAiQjAwODVfdnNfcmVzdCIpCkRpbVBsb3QoQWxsTUIsIHJlZHVjdGlvbiA9ICJ0c25lIiwgZ3JvdXAuYnkgPSAiSDAzMjFfdnNfcmVzdCIpCkRpbVBsb3QoQWxsTUIsIHJlZHVjdGlvbiA9ICJ0c25lIiwgZ3JvdXAuYnkgPSAiSDEwMDlfdnNfcmVzdCIpCkRpbVBsb3QoQWxsTUIsIHJlZHVjdGlvbiA9ICJ0c25lIiwgZ3JvdXAuYnkgPSAiSDExMThfdnNfcmVzdCIpCmBgYApUU05FIFBsb3QgY2VsbHMgY29sb3JlZCBieSBjbHVzdGVycyBhbmQgZ3JvdXBlZCBieSBjYXNlLiAKYGBge3J9CkRpbVBsb3QoQWxsTUIsIHJlZHVjdGlvbiA9ICJ0c25lIiwgc3BsaXQuYnkgPSAiY2FzZSIsIGxhYmVsID0gVFJVRSwgbmNvbCA9IDEpCmBgYAoKRmluZCBtYXJrZXJzIGZvciBldmVyeSBjbHVzdGVyIGNvbXBhcmVkIHRvIGFsbCByZW1haW5pbmcgY2VsbHMsIHJlcG9ydCBvbmx5IHRoZSBwb3NpdGl2ZSBvbmVzCmBgYHtyfQpBbGxNQi5tYXJrZXJzIDwtIEZpbmRBbGxNYXJrZXJzKEFsbE1CLCBvbmx5LnBvcyA9IFRSVUUsIG1pbi5wY3QgPSAwLjI1LCBsb2dmYy50aHJlc2hvbGQgPSAwLjI1KQpgYGAKU2F2ZSBzaW5nbGUtY2VsbCBlbGVtZW50cy4gCmBgYHtyfQojc2F2ZVJEUyhBbGxNQiwiQWxsTUIucmRzIikKYGBgCgpgYGB7cn0KI0FsbE1CPXJlYWRSRFMoIkFsbE1CLnJkcyIpCmBgYAoKYGBge3J9CiNzYXZlUkRTKEFsbE1CLm1hcmtlcnMsIkFsbE1CLm1hcmtlcnMucmRzIikKYGBgCgpgYGB7cn0KI0FsbE1CLm1hcmtlcnM9cmVhZFJEUygiQWxsTUIubWFya2Vycy5yZHMiKQojd3JpdGUuY3N2KEFsbE1CLm1hcmtlcnMsIkFsbE1CX21hcmtlcnMuY3N2IikKYGBgCgpgYGB7cn0KdW5pcXVlKEFsbE1CLm1hcmtlcnMkY2x1c3RlcikKYGBgCgpUb3AgbWFya2VyIGdlbmVzIGZvciBlYWNoIGNsdXN0ZXJzOiAKYGBge3J9CkFsbE1CLm1hcmtlcnMgJT4lIGdyb3VwX2J5KGNsdXN0ZXIpICU+JSB0b3BfbihuID0gMiwgd3QgPSBhdmdfbG9nRkMpCndyaXRlLnRhYmxlKEFsbE1CLm1hcmtlcnMsIGZpbGUgPSAiQWxsTWFya2Vycy50eHQiLCBjb2wubmFtZXMgPSBUUlVFLCBzZXAgPSAiXHQiLCBxdW90ZSA9IEZBTFNFKQp0b3AxME1hcmtlcnMgPC0gQWxsTUIubWFya2VycyAlPiUgZ3JvdXBfYnkoY2x1c3RlcikgJT4lIHRvcF9uKG4gPSAxMCwgd3QgPSBhdmdfbG9nRkMpCndyaXRlLnRhYmxlKHRvcDEwTWFya2VycywgZmlsZSA9ICJ0b3AxME1hcmtlcnMudHh0IiwgY29sLm5hbWVzID0gVFJVRSwgc2VwID0gIlx0IiwgcXVvdGUgPSBGQUxTRSkKYGBgCgpIZWF0bWFwIGZvciBzb21lIG1hcmtlciBnZW5lczogCmBgYHtyfQpmZWF0dXJlcyA8LSB1bmlxdWUodG9wMTBNYXJrZXJzJGdlbmUpCkRvSGVhdG1hcChBbGxNQiwgZmVhdHVyZXMgPSBmZWF0dXJlcywgc2l6ZSA9IDIsIGRyYXcubGluZXMgPSBGQUxTRSwgYW5nbGUgPSA0NSwKICAgICAgICAgIGhqdXN0ID0gMC4yKSArIHRoZW1lKGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KHNpemUgPSA1KSkKYGBgCgpgYGB7cn0KVmxuUGxvdChBbGxNQiwgZmVhdHVyZXMgPSBjKCJTTEMzMkExIiwgIkdBRDEiLCAiR0FEMiIsICJTTEMxN0E2IiwgIkxQTCIsICJPVFgyIiwgIkFEQ1lBUDEiLCAiR1JQIiwgIlZJUCIpLAogICAgICAgIG5jb2wgPSAxKQpgYGAKCiAKIE5ldXJvbiAgPSBFTk8yLCBSQkZPWDMKIEdsdXRhbWF0ZXJnaWMgbmV1cm9ucyA9IFNMQzE3QTYsIFNMQzE3QTcKIEdBQkFlcmdpYyBuZXVyb25zID0gU0xDMzJBMSwgR0FEMSwgR0FEMgogRG9wYW1pbmVyZ2ljIG5ldXJvbnMgPSBUSCwgU0xDNkEzLCBTQ0wxOEEyCiBBc3Ryb2N5dGVzICA9IEFRUDQsIEdGQVAKIE9saWdvZGVuZHJvY3l0ZXMgID0gIFBMUDEsIE1CUAogT1BDcyAgPSAgVkNBTiwgQkNBTiwKIE1pY3JvZ2xpYSA9IENYM0NSMSwgUDJSWTEyCiBFbmRvdGhlbGlhbCBjZWxscyA9IEZMVDEsIENMRE41CgoKUGxvdCB0aGVzZSBnZW5lcyBpbiB0aGUgY2x1c3RlciBwbG90OgpgYGB7cn0KRmVhdHVyZVBsb3QoQWxsTUIsIGZlYXR1cmVzID0gYygiRU5PMiIsICJSQkZPWDMiLCJTTEMxN0E2IiwgIlNMQzE3QTciLCJBUVA0IiwgIkdGQVAiKSkKYGBgCgpgYGB7cn0KRmVhdHVyZVBsb3QoQWxsTUIsIGZlYXR1cmVzID0gYygiU0xDMTdBNiIsICJTTEMxN0E3IikpCmBgYApgYGB7cn0KRmVhdHVyZVBsb3QoQWxsTUIsIGZlYXR1cmVzID0gYygiQVFQNCIsICJHRkFQIikpCgpGZWF0dXJlUGxvdChBbGxNQiwgZmVhdHVyZXMgPSBjKCJTTEMzMkExIiwgIkdBRDEiLCJHQUQyIiwiVEgiLCAiU0xDNkEzIiwiU0NMOEEyIikpCkZlYXR1cmVQbG90KEFsbE1CLCBmZWF0dXJlcyA9IGMoIlRIIiwgIlNMQzZBMyIsIlNDTDE4QTIiKSkKCkZlYXR1cmVQbG90KEFsbE1CLCBmZWF0dXJlcyA9IGMoIlBMUDEiLCAiTUJQIiwiVkNBTiIsICJCQ0FOIiwiQ1gzQ1IxIiwgIlAyUlkxMiIpKQpGZWF0dXJlUGxvdChBbGxNQiwgZmVhdHVyZXMgPSBjKCJWQ0FOIiwgIkJDQU4iKSkKRmVhdHVyZVBsb3QoQWxsTUIsIGZlYXR1cmVzID0gYygiQ1gzQ1IxIiwgIlAyUlkxMiIpKQpGZWF0dXJlUGxvdChBbGxNQiwgZmVhdHVyZXMgPSBjKCJQTFAxIiwgIk1CUCIsIlZDQU4iLCAiQkNBTiIsIkZMVDEiLCAiQ0xETjUiKSkKRmVhdHVyZVBsb3QoQWxsTUIsIGZlYXR1cmVzID0gYygiRkxUMSIsICJDTERONSIpKQpgYGAKRmluZCBjZWxsLXR5cGVzIGJ5IHBsb3R0aW5nIG1hcmtlciBnZW5lcy4KYGBge3J9ClZsblBsb3QoQWxsTUIsIGZlYXR1cmVzID0gYygiRU5PMiIpLHB0LnNpemUgPSAwKQpWbG5QbG90KEFsbE1CLCBmZWF0dXJlcyA9IGMoIlJCRk9YMyIpLHB0LnNpemUgPSAwKQpWbG5QbG90KEFsbE1CLCBmZWF0dXJlcyA9IGMoIlNMQzE3QTYiKSxwdC5zaXplID0gMCkKVmxuUGxvdChBbGxNQiwgZmVhdHVyZXMgPSBjKCJTTEMxN0E3IikscHQuc2l6ZSA9IDApClZsblBsb3QoQWxsTUIsIGZlYXR1cmVzID0gYygiU0xDMzJBMSIpLHB0LnNpemUgPSAwKQpWbG5QbG90KEFsbE1CLCBmZWF0dXJlcyA9IGMoIkdBRDEiKSxwdC5zaXplID0gMCkKVmxuUGxvdChBbGxNQiwgZmVhdHVyZXMgPSBjKCJHQUQyIikscHQuc2l6ZSA9IDApClZsblBsb3QoQWxsTUIsIGZlYXR1cmVzID0gYygiVEgiKSxwdC5zaXplID0gMCkKVmxuUGxvdChBbGxNQiwgZmVhdHVyZXMgPSBjKCJTTEM2QTMiKSxwdC5zaXplID0gMCkKVmxuUGxvdChBbGxNQiwgZmVhdHVyZXMgPSBjKCJTTEMxOEEyIikscHQuc2l6ZSA9IDApClZsblBsb3QoQWxsTUIsIGZlYXR1cmVzID0gYygiQVFQNCIpLHB0LnNpemUgPSAwKQpWbG5QbG90KEFsbE1CLCBmZWF0dXJlcyA9IGMoIkdGQVAiKSxwdC5zaXplID0gMCkKVmxuUGxvdChBbGxNQiwgZmVhdHVyZXMgPSBjKCJQTFAxIikscHQuc2l6ZSA9IDApClZsblBsb3QoQWxsTUIsIGZlYXR1cmVzID0gYygiTUJQIikscHQuc2l6ZSA9IDApClZsblBsb3QoQWxsTUIsIGZlYXR1cmVzID0gYygiVkNBTiIpLHB0LnNpemUgPSAwKQpWbG5QbG90KEFsbE1CLCBmZWF0dXJlcyA9IGMoIkJDQU4iKSxwdC5zaXplID0gMCkKVmxuUGxvdChBbGxNQiwgZmVhdHVyZXMgPSBjKCJDWDNDUjEiKSxwdC5zaXplID0gMCkKVmxuUGxvdChBbGxNQiwgZmVhdHVyZXMgPSBjKCJQMlJZMTIiKSxwdC5zaXplID0gMCkKVmxuUGxvdChBbGxNQiwgZmVhdHVyZXMgPSBjKCJGTFQxIikscHQuc2l6ZSA9IDApClZsblBsb3QoQWxsTUIsIGZlYXR1cmVzID0gYygiQ0xETjUiKSxwdC5zaXplID0gMCkKYGBgCgpgYGB7cn0KVmxuUGxvdChBbGxNQiwgZmVhdHVyZXMgPSBjKCJFTk8yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUSCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU0xDNkEzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTTEMxOEEyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTTEMxN0E2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTTEMxN0E3IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTTEMzMkExIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJHQUQxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJHQUQyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBUVA0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJHRkFQIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQTFAxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPTElHMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVkNBTiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ1gzQ1IxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQMlJZMTIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZMVDEiKSwKICAgICAgICBwdC5zaXplID0wLG5jb2wgPSAxKQoKYGBgCgpGaW5kIG1lYW4gdmFsdWVzIG9mIHRoZXNlIGdlbmVzIGFjcm9zcyBjbHVzdGVycy4KYGBge3J9CkF2ZXJhZ2VFeHByZXNzaW9uKEFsbE1CLCBmZWF0dXJlcyA9IGMoIkVOTzIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUSCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNMQzZBMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNMQzE4QTIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTTEMxN0E2IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU0xDMTdBNyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNMQzMyQTEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJHQUQxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiR0FEMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFRUDQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJHRkFQIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUExQMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk9MSUcxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVkNBTiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNYM0NSMSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlAyUlkxMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZMVDEiKSx1c2UuY291bnRzPVRSVUUpCgpgYGAKT3RoZXIgZm9ybSBvZiBwbG90aW5nIGdlbmVzIGFjcm9zcyBjbHVzdGVyczoKYGBge3J9ClJpZGdlUGxvdChBbGxNQiwgZmVhdHVyZXM9YygiRU5PMiIpKQpSaWRnZVBsb3QoQWxsTUIsIGZlYXR1cmVzPWMoIlRIIikpClJpZGdlUGxvdChBbGxNQiwgZmVhdHVyZXM9YygiU0xDNkEzIikpClJpZGdlUGxvdChBbGxNQiwgZmVhdHVyZXM9YygiU0xDMThBMiIpKQpSaWRnZVBsb3QoQWxsTUIsIGZlYXR1cmVzPWMoIlNMQzE3QTYiKSkKUmlkZ2VQbG90KEFsbE1CLCBmZWF0dXJlcz1jKCJHQUQyIikpCmBgYAoKQXNzaWduaW5nIGNlbGwgdHlwZSBpZGVudGl0eSB0byBjbHVzdGVyczogCgpgYGB7cn0KQWxsTUIgPC0gUmVuYW1lSWRlbnRzKEFsbE1CLCBgMGAgPSAiT2xpZ29kZW5kcm9jeXRlcyIsIGAxYCA9ICJPbGlnb2RlbmRyb2N5dGVzIiwgYDJgID0gIkFzdHJvY3l0ZXMiLAogICAgICAgICAgICAgICAgICAgICAgYDNgID0gIk9saWdvZGVuZHJvY3l0ZXMiLCBgNGAgPSAiT1BDcyIsIGA1YCA9ICJHbHVfR0FCQSBuZXVyb25zIiwKICAgICAgICAgICAgICAgICAgICAgIGA2YCA9ICJNaWNyb2dsaWEiLCBgN2AgPSAiT2xpZ29kZW5kcm9jeXRlcyIsIGA4YCA9ICJFbmRvdGhlbGlhbCBjZWxscyIsYDlgID0gIkdsdV9uZXVyb25zIiwKICAgICAgICAgICAgICAgICAgICAgIGAxMGAgPSAiRW5kb3RoZWxpYWwgY2VsbHMiLCBgMTFgID0gImRvcGFtaW5lX25ldXJvbl9wb3RlbnRpYWxseV9EQTIiLGAxMmAgPSAibm92ZWxfQ2x1c3RlcjEyIiwKICAgICAgICAgICAgICAgICAgICAgIGAxM2AgPSAibm92ZWxfQ2x1c3RlcjEzIixgMTRgID0gIm5vdmVsX0NsdXN0ZXIxNCIsCiAgICAgICAgICAgICAgICAgICAgICBgMTVgID0gIkdBQkFfbmV1cm9ucyIsIGAxNmA9ImRvcGFtaW5lX25ldXJvbl9wb3RlbnRpYWxseV9EQTEiKQpgYGAKCk5vdyBsZXQncyBwbG90IGNlbGxzIHdpdGggdGhlIGFzc2lnbmVkIGNlbGx0eXBlczogCmBgYHtyfQpEaW1QbG90KEFsbE1CLCBsYWJlbCA9IFRSVUUsIHJlcGVsID0gVFJVRSwgcHQuc2l6ZSA9IDEpCmBgYAoKYGBge3J9CkRpbVBsb3QoQWxsTUIsIGxhYmVsID0gVFJVRSwgcmVwZWwgPSBUUlVFLCBwdC5zaXplID0gMSwgc3BsaXQuYnkgPSAiY2FzZSIsIGxhYmVsLnNpemUgPSAyLAogICAgICAgIG5jb2wgPSAxKSArIE5vTGVnZW5kKCkKYGBgCgpTYXZpbmcgdGhlIHNpbmdjZWxsIG9iamVjdHM6CmBgYHtyfQpzYXZlUkRTKEFsbE1CLCJBbGxNQi5yZHMiKQpBbGxNQj1yZWFkUkRTKCJBbGxNQi5yZHMiKQpzYXZlUkRTKEFsbE1CLm1hcmtlcnMsIkFsbE1CLm1hcmtlcnMucmRzIikKQWxsTUIubWFya2Vycz1yZWFkUkRTKCJBbGxNQi5tYXJrZXJzLnJkcyIpCmBgYAoKQ2hlY2sgdGhlIGNlbGwgY291bnRzIG9mIGVhY2ggY2x1c3RlcgpgYGB7cn0KdGFibGUoSWRlbnRzKEFsbE1CKSkKYGBgCkhvdyBtYW55IGNlbGxzIGluIGVhY2ggZ3JvdXA/CmBgYHtyfQp0YWJsZShBbGxNQiRjYXNlKQpgYGAKCkhvdyBtYW55IGNlbGxzIGluIGVhY2ggY2x1c3RlciBvZiBlYWNoIGdyb3VwPyAKYGBge3J9CnRhYmxlKElkZW50cyhBbGxNQiksIEFsbE1CJGNhc2UpCmBgYAoKV2hhdCBwcm9wb3J0aW9uIG9mIGNlbGxzIGFyZSBpbiBlYWNoIGNsdXN0ZXIgb2YgZWFjaCBncm91cD8gIApgYGB7cn0KcHJvcC50YWJsZSh0YWJsZShJZGVudHMoQWxsTUIpLCBBbGxNQiRjYXNlKSwgbWFyZ2luID0gMikKYGBgCgoKCg==